From: Pascal J. Bourguignon on 20 Feb 2010 04:26 Kazimir Majorinc <email(a)false.false> writes: > Do you know: > > * the first known occurrence of the > phrase "code is data;" 1932, G�del Theorem. (Perhaps not formally, but that's the idea). > * the first article or book that discussed > and discouraged use of eval in CL or any > other Lisp dialect? 1960, the bug in mapcar/lambda due do dynamic scope. Well, that's the root. The problems in using EVAL in CL comes from the introduction of lexical scope, which is not accessible to the forms passed to EVAL. At the same time, the introduction of macros, replacing FEXPR, superseded most needs for EVAL. -- __Pascal Bourguignon__
From: joswig on 21 Feb 2010 08:10 On 20 Feb., 10:26, p...(a)informatimago.com (Pascal J. Bourguignon) wrote: > Kazimir Majorinc <em...(a)false.false> writes: > > Do you know: > > > * the first known occurrence of the > > phrase "code is data;" > > 1932, Gödel Theorem. (Perhaps not formally, but that's the idea). > > > * the first article or book that discussed > > and discouraged use of eval in CL or any > > other Lisp dialect? > > 1960, the bug in mapcar/lambda due do dynamic scope. Well, that's the > root. > > The problems in using EVAL in CL comes from the introduction of lexical > scope, which is not accessible to the forms passed to EVAL. At the same > time, the introduction of macros, replacing FEXPR, superseded most needs > for EVAL. > > -- > __Pascal Bourguignon__ Lisp developers detected at least late 70s that FEXPRs are not needed most of the time. MacLisp had FEXPRs and Lisp Machine Lisp also has FEXPRs. But if you look at the sources of the Lisp Machine OS from 1982, FEXPRs are simply nowhere used. They are provided and the debugger knows about them, but in no library or application code are they used. There are around 150 thousand lines of code and almost all FEXPR related code is to provide them and there is nothing that really uses them. EVAL is also only rarely used. For example in ZMail, the mail application, for filters and for running a initialization form for a printer - that's mostly it in ZMail, a larger application in the Lisp Machine OS. If FEXPRs and EVAL would be that important, then I would expect that on an early Lisp Machine, with developers still knowing about FEXPRs, one would have found prominent use. But that's just not the case. EVAL was used where useful and FEXPRs mostly not. FEXPRs were probably provided for making it easier to port legacy code.
|
Pages: 1 Prev: Library Conflicts Next: Shen(Qi III) project: progress to date |