> 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

Reply via email to