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
(lambda x: dechurch(x))((lambda x: x)((lambda f: lambda x: (f(f(f(x)))))))
$ aca
$ aca -S
- 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
:
v1.0.0
:
- Simply typed lambda calculus
v2.0.0
:
License
MIT