[racket] letoverlambda
On Sat, Nov 20, 2010 at 18:14, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>
>
> If these two paragraphs are characteristic for the book, it is based on the usual misconceptions of poor Common Lispers about the world of hygienic macros, which they have never understood and are therefore afraid of.
>
> For us, we should figure out what's good about the book and use it for our own work. We understand 'hygienic macros' and these guys' world. Advantage, us.
>
> The author is irrelevant to us.
>
> -- Matthias
I don't want to take any sides in this debate -- which seems to
drift into a "Scheme vs Common Lisp" debate -- I just want to point to
the "Clarifications" page written by the same book author regarding
it's controversies:
http://letoverlambda.com/index.cl/clarifications
Ciprian.
P.S.: It just happens that a few weeks ago I've started reading
the book online, and from yesterday I also have the book. And I kind
of like the macro stuff described in there. (And just for the record I
prefer Scheme over Common Lisp.)
Moreover, the macros described in his book (by using a certain
methodology) are not that different from a primitive hygienic-like
macro system. For example he defines the `square` macro as:
http://letoverlambda.com/index.cl/guest/chap3.html#sec_6
~~~~
(defmacro! square (o!x)
`(* ,g!x ,g!x))
~~~~
(defmacro! square (o!x)
`(progn
(format t "[~a gave ~a]~%"
',o!x ,g!x)
(* ,g!x ,g!x)))
~~~~
So my personal opinion (as an amateur Lisp-ish programmer) is that
if someone is interested in DSL's he could read the book, at least to
get an idea of what can be achieved in a Lisp-ish environment. (I
actually want to understand his ideas and techniques and try to see
how to better adapt and apply them to Racket in the context of
hygienic macros (I currently only know `syntax-rules` so maybe the
next step is to understand "hygienic" macros, thus any good pointers
are welcomed).)