[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.