[racket] Wikipedia article update
Mea culpa, I knew that too and (as indicated in my private message) Eugene's dissertation chapter on the history of macros says so.
We should mention the symbol property list idea here, which is pervasive in 1.5.
Do read Eugen's chapter -- Matthias
On May 3, 2012, at 8:02 PM, John Clements wrote:
>
> On May 3, 2012, at 7:11 AM, Matthias Felleisen wrote:
>
>>
>> On May 3, 2012, at 1:29 AM, John Clements wrote:
>>
>>> "The earliest Lisp macros took the form of FEXPRs, function-like operators whose inputs were not the values computed by the arguments but rather the syntactic forms of the arguments, and whose output were syntactic fragments to be used in place of the FEXPR's use. In later Lisps, FEXPRs were replaced by DEFMACRO, a system that allowed programmers to specify source-to-source transformations that were applied before the program is run."
>>
>>
>> I have accepted these two sentences as facts for the last 28 years so if you find out that they are wrong, please let us know in which way.
>
> Sigh. Okay, I just spent 30 minutes and dug up the e-mail that Joe Marshall sent me. He pointed out that my text was wrong. The most egregious error was my suggestion that FEXPRs emitted source code, when in fact they emit *values* to be used in continued computation. I've posted his e-mail to my website at
>
> http://www.brinckerhoff.org/scraps/joe-marshall-on-FEXPRS-and-DEFMACRO.txt
>
> and updated the Wikipedia page to reflect my better understanding. The text now reads:
>
> "The earliest Lisp macros took the form of FEXPRs, function-like operators whose inputs were not the values computed by the arguments but rather the syntactic forms of the arguments, and whose output were values to be used in the computation. In other words, FEXPRs were implemented at the same level as EVAL, and provided a window into the meta-evaluation layer. This was generally found to be a difficult model to reason about effectively [6].
> An alternate, later facility was called DEFMACRO, a system that allowed programmers to specify source-to-source transformations that were applied before the program is run."
>
>
>
> John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120503/572150d3/attachment-0001.html>