eric-and-jane-smith <noreply@nospam.com> wrote:
+---------------
| pjb@informatimago.com (Pascal J. Bourguignon) wrote:
| > Lisp macros are just a much simplier and much more powerful to archive
| > the same results much faster.
|
| It's hard to make the power of CL macros clear to non-Lispers. They think
| in terms of the macros of other programming languages, and have no idea
| what CL macros are. From their point of view, we seem to be telling them
| we want to use macros as a klugey substitute for C++ templates, or for the
| Java type system, or whatever.
+---------------
Oddly enough, it is *much* easier to explain Lisp macros to those
who have experience with assembly language macros in such "antiques"
as the DEC PDP-10 or IBM 360/370 mainframes which supported looping,
deconstruction/construction of symbol names (down to individual
characters), definition of new macros *by* macros, access to the
assembler's symbol table at compile time (accessing & mutating the
values of symbols and tags), "pass1" vs. "pass2" conditionals
(collect data from the whole program in pass 1 and drop it into
instruction and/or data locations in pass 2), etc., etc.[1]
But for those whose first or only experience of "macros" came from
the crippled incarnation of them in C, well, you are quite correct,
sadly.
-Rob
[1] I have spoken at length here several times previously on the
wonders of PDP-10 assembler macros, so won't bore you again. For
the curious, search for "rpw3", "FOCAL" & "PDP-10".
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607