So I guess no one else has an idea for something that I cannot implement using substitution that I could implement using environments (without a store)?
by lordhoto: viewtopic.php?f=300&t=30645I think the idea was that code which has side effects evaluates differently in substitution vs environment. Think of a "let" which binds an expression which makes your programm terminate to a variable which is never used. If you have (lazy) substitution, it will not error out because the bound expression is never evaluated. If you use environments, your interpreter will evaluate the bound expression and then terminate.
Since the program notably behaves different when using either subst or enviroments, I guess this answeres the question asked in the exercise.