Skip to main content

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

  1. 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'
  1. Lambda calculus
let main =
    (\x y f. f x y)
  1. Standard library for basic datatypes
let a = zero
let b = succ zero
let main = dechurch b
-- 1
  1. Sugar for Church numerals
let main = 0

-- This is identical to
{-
let main =
    (\x . x)
-}
  1. 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
  1. 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)

Source distribution for acalang 0.5.0
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

Release history Release notifications | RSS feed

This release

0.5.0 This release

1 release file

0.4.0

1 release file

0.3.0

2 release files

0.2.0

2 release files

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page