Lamb

January 2023 - Present · GitHub · Crate

Lamb is a library for the pure untyped lambda calculus, including a prelude of some common lambda terms as well as an interactive REPL.

My motivation for creating Lamb was to get a feel of what creating or implementing a new programming language would be like. Although the lambda calculus is nothing new, it serves as a foundation for many programming languages, especially functional ones (Haskell’s core IR even resembles the typed lambda calculus to a large extent).

Aside from getting acquainted with the basic ideas and steps of programming language design, it also improved my ability to write clean and idiomatic Rust code.