Description

This project is a Haskell-based interpreter for lambda calculus expressions. It reads expressions from an input file, performs reductions using beta and eta rules following applicative order (call-by-value), and writes the final results to an output file. The interpreter handles invalid input gracefully and follows proper rules for variable renaming to avoid conflicts during substitution.

Tech Stack

  • Haskell

Contributions

  • Implemented a reducer function that applies beta and eta reductions to lambda expressions represented by a custom Lexp datatype.
  • Utilized provided parsing utilities to handle input/output operations, focusing on the core reduction logic.
  • Ensured correct handling of variable scoping and alpha-renaming to prevent variable capture during substitutions.
  • Validated the interpreter against a suite of test cases, confirming accurate reduction results and robust error handling.