mit-scheme-devel
[Top][All Lists]
Advanced

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

Re: [MIT-Scheme-devel] Keywords


From: Taylor R Campbell
Subject: Re: [MIT-Scheme-devel] Keywords
Date: Thu, 1 Apr 2010 20:44:45 -0400
User-agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/7.7.90.+

   Date: Fri, 19 Mar 2010 12:03:35 -0700
   From: Joe Marshall <address@hidden>

   The tokens `:yes' and `:no' don't need quoting or unquoting or any
   careful attention to what level of expansion they will be quoted at.
   They are just literal symbolic tokens that get no special treatment by
   the evaluator just because they are symbols.

   As I said before, one could do without keywords and just use symbols,
   and then you'd have to think a bit harder about which ones to quote
   and unquote at which level, but you could do it.  It is just a
   convenience.  But then, LET is simply a trivial convenience over using
   LAMBDA.

When you're writing the macro you need to decide what its evaluation
rules are.  You can defer parts of that decision to some other
operator by passing subforms of the input to an invocation of the
other operator.  Introducing self-evaluating symbols doesn't make the
decision any easier or more convenient, however.  It only makes
certain uses of macros independent of that decision.

I still don't buy it, and I'm afraid I got lost in your example --
there were about a dozen keywords involved, and it was not clear to me
which ones needed to be self-evaluating objects and how that had
anything to do with how much quoting and unquoting you needed to write
in your macro.  I agree that your macro looked hairy, but its
hairiness was unrelated to the use of keywords with ECASE.




reply via email to

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