All projects

Project

pLam

An open-source interpreter for learning and exploring pure λ-calculus, born from research on numeral systems.

Client
Open source
Year
2017
Areas
Haskell, Open source, Research
Link
github.com

pLam (pure Lambda calculus) is a tool to explore, define and evaluate λ-expressions. It started as a helper for a master’s thesis on numeral systems in λ-calculus and grew into an interpreter used by students and enthusiasts who want to see computation at its most fundamental.

Highlights

  • Interactive shell and .plam program files.
  • Step-by-step evaluation that shows every reduction, with the redex highlighted, down to the normal form.
  • Multiple reduction strategies, including call-by-name and call-by-value.
  • Syntactic sugar for Church numerals, binary numerals and lists.
  • A standard library of common λ-expressions, from booleans and arithmetic to factorial and list operations.
  • Written in Haskell, with around 470 stars on GitHub.