Aca
Aca, a functional programming language, and shitty toy.
Aca is a toy functional programming language initially inspired by ISWIM. The interpreter is currently written in Python.
Install
$ pip install acalang
Example
- Command line usage
$ cat foo.aca
let main =
dechurch 3
$ aca foo.aca
3
$ aca foo.aca -S # `noeval' mode
(lambda x: dechurch(x))((lambda x: x)((lambda f: lambda x: (f(f(f(x)))))))
$ aca # REPL
$ aca -S # REPL with `noeval'
- Lambda calculus
let main =
(\x y f. f x y)
- Standard library for basic datatypes
let a = zero
let b = succ zero
let main = dechurch b
-- 1
- Sugar for Church numerals
let main = 0
-- This is identical to
{-
let main =
(\x . x)
-}
- Special builtin functions for debugging (decoded into Python value)
let main =
dechurch 42
-- Output: 42
let main =
debool true
-- Output: True
let main =
dereal (neg (u2i 42))
-- Output: -42
- Simple module import with
use
$ foo.aca
let foo = 42
$ bar.aca
use foo
let main =
dechurch foo
$ aca bar.aca
42
Goals
- Before
v1.0.0:- Untyped lambda calculus
v1.0.0:- Simply typed lambda calculus
v2.0.0:- System F
License
MIT
Metadata
Release files for acalang 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| acalang-0.5.0.tar.gz | 5.5 kB | Details |
Release files / acalang-0.5.0.tar.gz
| Download URL | acalang-0.5.0.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
22be4fa7a0db8c84edfee5f19fd325689a1542af768fa14230d9728d45dd8194
|
|
BLAKE2b-256 checksum How to use checksums |
5aa9c1088267696e94eecc9168d8a56b864817e71f0a290905253046215c02f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |