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

publication of R5RS




I have arranged for R5RS to be published in the journal `Lisp and
Symbolic Computation' and in SIGPLAN Notices.  

In reponse to issues raised here and on comp.lang.scheme I have
appended the following short list of clarifications and corrections
to the end of the report.
                                       -Richard
      


Clarifications and corrections

Several inconsistencies in this report have been pointed out since
its initial publication on the World-Wide Web.  This section addresses
the most important of them.

- Semantics of CALL-WITH-CURRENT-CONTINUATION

The definition of CALL-WITH-CURRENT-CONTINUATION in Section 8.2 is
incorrect because it is incompatible with DYNAMIC-WIND.  As shown in
Section 4 of [1], however, this incorrect semantics is adequate to
define the  SHIFT and RESET operators, which can then be used to
define the correct semantics of both DYNAMIC-WIND and
CALL-WITH-CURRENT-CONTINUATION.

- Redefinition of keywords

As stated in Section 3.1, keywords are not reserved.  The grammar
specified in Section 8.1 is thus somewhat misleading because a
program may redefine any or all syntactic keywords.  In particular,
it is possible to use any identifier as a variable.

- PORT?

Section 4.2 includes PORT? in the list of predicates defining disjoint
types; there is no such procedure.  INPUT-PORT? and OUTPUT-PORT? should
be included in this list of predicates.  An object may satisfy both
INPUT-PORT? and OUTPUT-PORT?, but cannot satisfy any other pair of
predicates in this list.


[1] Andrzej Filinski.
    Representing Monads.
    In `Proceedings of the 1994 ACM SIGPLAN-SIGACT Symposium on
    Principles of Programming Languages', pages 446-457.