Skip to main content

Aca, a functional programming language, and shitty toy

Project description

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

Not on PyPI. Install it manually with the setup script.

Example

  1. 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)))))))
  1. Lambda calculus
let main =
    (\x y f. f x y)
  1. Sugar for Church numerals
let main = 0

... is identical to

let main =
    (\x . x)
  1. Builtin function dechurch for trying to decoding a natural number
let main =
    dechurch 42

... will not yield any lambdas but value 42 on the screen

Already done

  • Lambda calculus
  • Encoding and decoding of Church numerals
  • Local declarations

Goals

  • Before v1.0.0:
    • Untyped lambda calculus
    • Standard library for basic datatypes and operations
  • v1.0.0:
    • Builtin binary operators
  • v2.0.0:
    • System F

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acalang-0.1.3.tar.gz (4.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page