Cauliflambda
Cauliflambda is an attempt at implementing a friendly, embeddable interpreter for lambda calculus. My broad goals for this project are:
This project is first and foremost a playground for myself to play around with parsing, analysis (lints) and possibly other fun concepts.
I also like lambda calculus to toy around with concepts that I know from higher-level languages, such as an Optional value.
My first attempt at a reducer/evaluator was based on namefree expressions where all names are replaced de Bruijn indexes. Unsurprisingly, this was really bad for debuggability and so I decided to scrap the idea.
I don't recall what the state of the new implementation is, but it might make sense to scrap it yet again and start with separate data structures–currently the parser and the evaluator share their data structure.
Let's see how it goes :)