** Languages: ** Scheme

** Period: ** February 2019

** Description: **

This project involved writing a function that compares two Scheme expressions, and produces a difference summary of where the two expressions are the same and where they differ. The difference summary generated is also a Scheme expression which, if executed in an environment where the Scheme variable % is true, has the same behavior as x, and otherwise has the same behavior as y. Additionally, the summary uses the symbol lambda in places where one input expression uses a lambda expression and the other uses the lambda symbol expression. Moreover, where the first Scheme expression uses the bound variable X in the same place where y declares the bound variable Y, the summary expression should declare a bound variable X!Y.