[Top][All Lists]

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

Re: Macro vs Function

From: Herbert Euler
Subject: Re: Macro vs Function
Date: Wed, 12 Apr 2006 23:54:12 +0800

From: "Stuart D. Herring" <address@hidden>
Reply-To: address@hidden
To: "Herbert Euler" <address@hidden>
CC: address@hidden
Subject: Re: Macro vs Function
Date: Wed, 12 Apr 2006 08:26:05 -0700 (PDT)

This much you can solve simply by using ',(car largs).  In general, in a `:

x              "use literally and eval later"
'x             "never eval at all"
,x             "use symbolically and eval later"
(eval x)       "use literally and eval twice later"
,(eval x)      "evaluate now and later"
',(eval x)     "evaluate now only"
',x            "use symbolically and don't eval later"

(...where 'now' is macro expansion time and 'later' is interpretation
time.)  You want the last one, since largs is a macro argument (use
symbolically) but you don't want the resulting list evaluated.  (I hope I
got all those meanings right!)

Oh yes!  I'm still a bit confused by the time when I wrote that definition.
Yes, ',x => (quote (\, x)) is what I need.

Guanpeng Xu

Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

reply via email to

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