On Mon, Apr 25, 2011 at 4:34 AM, Andre van Tonder <[email protected]> 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. -- Alex _______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
