Re: [Scheme-reports] ANN: first draft of R7RS small language available Andre van Tonder (03 May 2011 13:41 UTC)

Re: [Scheme-reports] ANN: first draft of R7RS small language available Andre van Tonder 03 May 2011 13:40 UTC

On Tue, 3 May 2011, Andy Wingo wrote:

> On Tue 03 May 2011 14:52, Andre van Tonder <andre@het.brown.edu> 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@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports