On 05/04/11 09:36, Andrzej wrote: > Personally, I think this should be addressed in R7RS, either by > explicitly informing about limits of the specification (illustrated > with an example like yours) or (better) by fixing this potentially > erroneous behavior by removing 'else' and '=>' syntax. Perhaps it > would be enough to replace them with global variables as you proposed > before.
Yes, this is troublingly un-jewel-like... Personally, I always thought that comparing the symbol was the right and simple thing to do, but these examples have given me pause for thought. However, having 'else' and friends be bound to something in the module exporting 'cond' and the check being for that binding still being in place is fraught with issues, too - I think Andy Wingo pointed out that his environment has a 'compile' procedure, and an 'eval-when' that uses 'compile' as a keyword. Under such a system, people in such situations would *have* to give access to the 'compile' procedure in order to let people use the 'compile' keyword to 'eval-when'. We've heard a lot of reasons why each possible solution is wrong. Clearly, we have a tough decision to make. Please can we now list the possible solutions, perhaps on a Wiki page, and for each one, work on a list of reasons why it sucks badly, with examples? Then we can try to find a decent solution... Actually, I've gotten one started: http://trac.sacrideo.us/wg/wiki/Keywords Please weigh in! Propose solutions, and let others refute them with examples of them exhibiting undesirable behaviour! > > Andrzej > ABS -- Alaric Snell-Pym http://www.snell-pym.org.uk/alaric/ _______________________________________________ Scheme-reports mailing list Scheme-reports@scheme-reports.org http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports