On Tue, 1 Apr 2008 23:17:10 +0200 "Mathias Dahl" wrote: > > Also, I think that it should be a function rather than a macro. > > (That would require explicitly quoting the arguments.) > > Could some explain to a lisp beginner like me what the benefit is? The > macro version seems easier to use as you don't have to quote the > arguments - to me that seems like a good thing. > > I rather like macros but they have their own dangers. The programmer is required to see the code in two phases at the same time: compile phase, and evaluation phase. Also elisp macros are not hygienic so there is always the possibility of unintended capture for more complex macros. Also for debugging to work you need to define a debug spec. Debug-ability goes down as the complexity of the macro increases. The KISS principle is to engineering what Occam's razor is to science. Another issue that I haven't seen mentioned is that macros set a far higher bar for documentation. With the great power of the macro comes a great responsibility to explain to others clearly and succinctly what your macro does. These are my experiences at least. I wouldn't concede macros for any other feature in a language, but they require judicious application. Macros are certainly not a wand to wave away quotes, though a may have written a few like that ... *couph*. Cheers, Mike Mattie