3 ms·
The fun part that distinguishes an early Lisp from the pure lambda calculus is the mixing of strict evaluation and call-by-need. I had to hack that a bit by ma
by fogus 14y ago
The fun part that distinguishes an early Lisp from the pure lambda calculus is the mixing of strict evaluation and call-by-need. I had to hack that a bit by making a distinction between Procs created with proc vs those with lambda and by tearing apart function bodies. I forget how the original Lisp made the distinction. It looks like I need to re-re-re-re-re-read the Lisp 1.5 manual.
- pi18n 14y agoI thought they just had special rules for expressions with a car in {set!, lambda, if, quote, ...} such that arguments to those are not evaluated. From there you can construct whatever else. I might be mistaken, I'm not clear on the history of it. You know what you might like, if you haven't seen it yet, is the Kernel programming language, a Scheme where everything, including macros, is first-class.