> Perhaps I missed something, but what contortions > are you referring to? The bindings will always be the > same, and the code listed in all of the examples will > simply work, in all existing and likely implementations. >
As I see it, the point of a specification like R7RS is the definition of what constitutes portable code. Portable code should not depend in a crucial way on features that are left unspecified by the report. If there is a feature (like the import of record type bindings or parameter objects) that is of undoubtedly benefit for real-life code and if this feature is uniformly implemented in all existing and likely implementations, this feature deserves to be specified in the report (of the small language) to allow portable code to use it. (Here, again, I use portable in the true sense of the word, not in the sense of being portable for all practical purposes.) > > If you want to introduce language to guarantee that > the bindings will always be the same, then you also > have introduce the notion of phasing, and the whole > can of worms involved therein. Proposals welcome! > I acknowledge that finding a suitable language to guarantee what we know is guaranteed by all existing implementations is another thing. I will invest some time in it and will make a proposal. Marc > P.S. Many, many things are intentionally left unspecified > to accommodate the wide variety of Scheme implementations. > It's one of the quirky aspects of the Scheme reports that people > disagree about, and one reason we made a small/large language > split for R7RS. It sounds like you may prefer the large > language - they are recruiting :) > Actually I agree on that many things should be left unspecified (many things in C are also unspecified, and I think this is one reason for its success). I just think that a few important things should be specified to make certain aspects of the language usuable. And specifying the behaviour of (certain) runtime bindings is crucial for making the record types work well with libraries, for example. As to R7RS small/large: For teaching purposes, for writing a compiler and for clarity of the language semantics, I actually prefer the small version. (Maybe the large when it comes to write large programs for whose I currently would use Python.)
_______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
