Guy L. Steele, Jr., Lambda: The Ultimate Declarative (1976)
“ This general scheme will produce much better code than a scheme which says that all LAMBDA expressions must, like the function FOO, take their arguments in certain registers. Note too that no code whatsoever is generated for the variable bindings as such; the fact that we assign names to the results of the expressions (+ X Y) and (* Z W) rather than writing (FOO 1 (* Z W) (+ X Y) ) makes no difference at all, which is as it should be. Thus, compiler temporaries and simple user variables are treated on a completely equal basis. ”
