Re: Crazy macro
- From: Barry Margolin <barmar@xxxxxxxxxxxx>
- Date: Sun, 30 Apr 2006 00:30:11 -0400
In article <1146327686.463468.103010@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
"Drew McDermott" <airfoyle@xxxxxxxxxxxxxx> wrote:
As an example, we can use 'control-nest' to provide the functionality
of 'let*' for 'multiple-value-let':
(control-nest
(multiple-value-let (x y z)
(foo ...)
:bind-p-q)
:bind-p-q
(multiple-value-let (p q)
(baz x y)
:bind-r-s)
:bind-r-s
(multiple-value-let (r s)
(zap x p)
...)))
The thing that bothers me about this is the loss of referential
transparency. To understand what X and Y mean in the :BIND-P-Q section,
you have to find all the places where the tag is referenced. This is
similar to the reason why lexical binding is generally preferred over
dynamic binding.
--
Barry Margolin, barmar@xxxxxxxxxxxx
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
.
- References:
- Crazy macro
- From: Drew McDermott
- Crazy macro
- Prev by Date: Re: Crazy macro
- Next by Date: Re: cl-quiz
- Previous by thread: Re: Crazy macro
- Next by thread: Re: Crazy macro
- Index(es):