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

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

On Mon, Apr 25, 2011 at 4:34 AM, Andre van Tonder <andre@x> wrote:
> On Fri, 22 Apr 2011, Alex Shinn wrote:
>> The implications for this are that while
>>  (let ((else #f))
>>   (cond (else (display "else clause matched"))))
>> is required to not display anything as in R5RS,
>>  (define else #f)
>>  ...
>>  (cond (else (display "else clause matched")))
>> would display "else clause matched".
> The latter behaviour may be compatible with the document in systems in which
> all identifiers are considered implicitly bound at toplevel, so the DEFINE
> would be like a SET!  However, many many people are going to find that
> surprising, because if you put it in a body:
>  (let ()
>   (define else #f)
>   ...
>   (cond (else (display "else clause matched"))))
> then suddenly the ELSE clause will not match.

I don't think many people are going to put a whole module
body in a let - one of the reasons we have modules is so
that isn't necessary.  It also isn't in general possible since
the body can mix expressions and definitions.

Regardless, no one is suggesting we standardize the
Chibi/Chicken approach.  They work very well for their
users (Chicken has one of the most vibrant and active
communities I know), and they are flexible with whatever
we choose to standardize.

[For the record, last night I added a compile-time option
to Chibi to use strict top-level matching, but until I add
some way to match different keywords of the same name
from different modules I won't enable it by default.]

Going back to the hypothetical broken implementations
which wouldn't necessarily match imported bindings, I
think this is too unlikely to influence our decision.  It's
far more likely anyone who wants to deviate will follow
the Chibi/Chicken pattern.  So unless another member
wants to take up the case, I'm going to just require
them to match and not bring ticket #157 to a vote.

Regarding the question of binding and exporting the
core keywords, I've seen enough new evidence, but
not enough evidence to make a summary decision,
so I'll re-open #83 for the next ballot.  I have nothing
more to add at the moment, but before the ballot I'll
write up an unbiased summary of this issue on the
wiki and encourage interested parties to summarize
their arguments.


Scheme-reports mailing list