Skip to main content

Calchylus - Lambda Calculus with Hy

Project description

calchylus is a Hy module that is used to evaluate, and furthermore through this documentation, shine light to the basics of Lambda calculus (also written as λ-calculus).

The target audience is those who:

  1. are interested in the theory and the history of the programming languages

  2. may have some experience in Python and/or Lisp

  3. who wants to narrow the gap between mathematical notation and programming languages, especially by means of logic

Andrew Bayer writes in his blog post:

“Traditional logic, and to some extent also type theory, hides computation behind equality.”

Lambda calculus, on the other hand, reveals how the computation in logic is made by manipulation of the Lambda terms. It also addresses the problem, what can be proved and solved and what cannot be computed in a finite time.

calchylus can also serve as a starting point for a mini programming language. Via custom macros representing well known Lambda forms, calchylus provides all necessary elements for boolean, integer, and list data types as well as conditionals, loops, variable setters, mathematical operators, and exemplary arithmetic functions like, summation, factorial, and fibonacci. Finally, one can expect to get a good understanding of combinatory logic, not the least of the fixed point combinator or shortly, ϒ combinator.

Quick start

Install

$ pip install hy calchylus
$ hy

Run

(require [calchylus.lambdas [*]])
(with-alpha-conversion-and-macros L ,)
(L x y , (x (x (x (x (x y))))) a b) ; output: (a (a (a (a (a b)))))
(FIBONACCI SEVEN) ; output: (x (x (x (x (x (x (x (x (x (x (x (x (x y)))))))))))))

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

calchylus-0.1.5.tar.gz (9.4 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