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

Re: [Scheme-reports] ANN: first draft of R7RS small language available



On Tue, 3 May 2011, Andy Wingo wrote:

> On Tue 03 May 2011 14:52, Andre van Tonder <andre@x> writes:
>
>>     (let ((else #f))
>>       (cond (else (display "else clause matched"))))
>>
>> should be equivalent to
>>
>>     (let ((x #f))
>>       (cond (x (display "else clause matched"))))
>
> Playing devil's advocate here... what about this one?
>
>    (let ((else #f))
>      (quote else))
>
> I think Andrzej's argument is that cond treats `else' not as an
> identifier but as a datum, as `quote' does.

The problem is that QUOTE always contains a datum, which is not subject to 
alpha renaming.  On the other hand, in

     (let ((else #f))
       (cond (else (display "else clause matched"))))

the first position in the COND clause can actually be a variable, and therefore 
is not protected from alpha renaming.


_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports