Re: Crazy macro
- From: Ron Garret <rNOSPAMon@xxxxxxxxxxx>
- Date: Sat, 29 Apr 2006 22:41:15 -0700
In article <1146368968.799639.60160@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"Drew McDermott" <airfoyle@xxxxxxxxxxxxxx> wrote:
In that case the tags are redundant. All you need is a privileged
symbol (\... would seem like a natural choice) to indicate that it is to
be replaced by the subsequent form, e.g.:
(control-nest
(multiple-value-let (x y) (frob) \...)
(multiple-value-let (q z) (blurp) (foo \...))
etc...
)
True, but the tags can be quite mnemonic.
That's what comments are for IMHO.
I could see tags being useful in a situation like this:
(cond ((condition1) :body1))
((condition2) :body2))
:body1 (body1)
:body2 (body2)
But as you've described it you can't do that.
You see why Vietnamization is a problem in my code!
Personally I deal with this by transforming code like this:
(cond ((condition1)
(let (...) ...))
(t (foo)))
Into this:
(if (not (condition1)) (return (foo))
(let (...) ...)
rg
.
- References:
- Crazy macro
- From: Drew McDermott
- Re: Crazy macro
- From: Ron Garret
- Re: Crazy macro
- From: Drew McDermott
- Crazy macro
- Prev by Date: Re: cl-quiz
- Next by Date: Re: Decreasing the "standard deviation" of lisp
- Previous by thread: Re: Crazy macro
- Next by thread: Re: Crazy macro
- Index(es):