About
The project allows a user to input combinatory expressions and receive a series of combinatory applications/reductions and explanations on how the given expression is reduced. This can be used as a tool for users who wish to learn more about combinatory logic by automatically evaluating complex combinatory expressions.
Inspiration/Reason for making this
I really like combinatory logic, but I've never come across a program that interprets expressions. Because combinatory logic is complicated, I decided to make a program which makes it easier to understand.
How I Built This
I wrote this in Python (and a tiny bit in Bash). I designed the user-input-parsing algorithm and overall combinatory expression evaluation algorithm. I mean I wrote everything.
Challenges
It's really hard to make a program parse anything!! You have to translate human-readable syntax into a data structure more useful to the actual code. Parentheses are annoying. The whole project was a sort of challenge, trying to figure out how the main algorithm should act when a combinator is in the front, or if it's an expression, etc., etc.
Log in or sign up for Devpost to join the conversation.