8504

Let expressions are derived expressions, because

(let ((<var 1><exp 1>) … (<var n><exp n>))

<body>)

is equivalent to

((lambda (<var 1> … <var n>)

<body>)

<exp 1>

<exp n>)

Implement a syntactic transformation let->combination that reduces evaluating let expressionsto evaluating combinations of the type shown above, and add the appropriate clause to eval to handlelet expressions.