Just came across a quote from Peter Norvig in Paradigms in AI Programing:
In the past, eval was seen as the key to Lisp's flexibility. In modern Lisps with lexical scoping, such as Common Lisp, eval is used less often (in fact, in Scheme there is no eval at all). Instead, programmers are expected to use lambda to create a new function, and then apply or funcall the function.
There are considerations on why eval is not a good idea, such as this, however I am more interested in the interaction between eval
and dynamic (special?) variables and how introduction of lexicals contributed to eval
losing favor. What were some common eval
idioms before the introduction of lexical variables?