[Top][All Lists]
[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
signature.asc
Description: PGP signature