emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: find.el --- Build a valid find(1) command with sexps


From: Mike Mattie
Subject: Re: find.el --- Build a valid find(1) command with sexps
Date: Tue, 1 Apr 2008 18:41:49 -0700

On Tue, 1 Apr 2008 23:17:10 +0200
"Mathias Dahl" <address@hidden> 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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]