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.

Built With

Share this project:

Updates

Submission history