Skip to content

Latest commit

 

History

History
40 lines (30 loc) · 1.93 KB

README.md

File metadata and controls

40 lines (30 loc) · 1.93 KB

wyvern

An untyped lambda calculus interpreter made to learn the basics of lambda calculus and concepts of functional programming.

Background

Lambda(λ) calculus is a formal system developed by Alonzo Church to express mathematical functions and is the foundation of functional programming languages. Lambda calculus (function-based) and Turing machines (state-based) are both universal models of computation, part of the Church-Turing Thesis.

Grammar at a glance:

  • Identifier: x - Identifier as expected in a programming language
  • Grouping: (x) - Grouping terms to avoid ambiguity
  • Abstraction: λx.y - Define function or lambda (anonymous function)
  • Application: x y - Invoke a lambda

See grammar.ebnf for EBNF grammar of this untyped lambda calculus.

Commands

  • Run - cargo run
  • Build release - cargo build --release

References