Lambda-Calculus-Interpreter
This is a single-line interpreter for the Lambda Calculus
- Built in the HTML/CSS/JavaScripts
- User Interface built with Bootstrap and JQuery
- Tested using Jest and Node.JS
The interpreter uses an applicative-order evaluation strategy to perform beta reduction. The interpreter can reduce complicated Lambda expressions, and it can also simulate SKI combinators and boolean logic (see notation at bottom).
The interpreter was created by considering the Lambda Calculus system as a tree and parsing the tree in iterative steps to find the beta normal form of the expression.
Reduces lambda terms succesfully
Tested with over 80 lambda expressions from various books and websites
SKI Combinators & Boolean Logic Notation
NOT == C TRUE == K FALSE == KI AND == (\pq.pq(KI)) OR == (\pq.pKq)
Note that the above notation is in prefix. So instead of TRUE AND FALSE, the input should be AND TRUE FALSE.
Dependencies
Thanks go to the following few authors:
jQuery jQuery Terminal BootStrap