Implementing Scheme in Haskell
Functional programming, Scheme, Haskell, Compiler Theory, Basic Category Theory
In this project, I implement a Scheme interpreter comprising a parser and an evaluator in Haskell. The parser type is a monad and this allows the construction of the total Scheme parser as a composition of simpler parsers. For the evaluator, I use monads to handle side-effects and scoping throughout the evaluation of S-expressions. The implementation includes a standard library of functions, and basic macros that make the language capable of modifying its own syntax.