Show your work. A lambda procedure gets its environment at procedure creation time. A delta procedure gets its environment at procedure call time. In a let expression, the environment at procedure creation is the same as the environment at procedure call, making both expansions equivalent. The following interpreter creates cells for all variables, not only for mutable variables.
Variable assignment works only when the variable to be assigned to has a mutable binding.
You should raise an error if the binding is immutable. Assume the expander has been modified appropriately. Changes are marked with strong .