leppie scripsit: > Under the documentation for letrec and letrec* the following is said > [1]: "Another restriction is that the continuation of each <init> > should not be invoked more than once." ... "Implementations may or may > not detect that the continuation of each <init> is invoked more than > once. However, if the implementation detects this, it must raise an > exception with condition type &assertion. " > > 1. What does 'should' imply here? (it is not required, but 'how much' > desired?)
R6RS, tracking RFC 2119, defines SHOULD NOT as "that valid reasons may exist in particular circumstances to ignore a statement, but that the implications must be understood and weighed before choosing a different course." The Report adds "In particular, this report occasionally uses 'should' [or 'should not'] to designate circumstances that are outside the specification of this report, but cannot be practically detected by an implementation; see section 5.4. In such circumstances, a particular implementation may allow the programmer to ignore the recommendation of the report and even exhibit reasonable behavior. However, as the report does not specify the behavior, these programs may be unportable, that is, their execution might produce different results on different implementations." > 4. What are the reasoning behind this? It's too hairy to handle correctly. -- Some people open all the Windows; John Cowan wise wives welcome the spring [EMAIL PROTECTED] by moving the Unix. http://www.ccil.org/~cowan --ad for Unix Book Units (U.K.) (see http://cm.bell-labs.com/cm/cs/who/dmr/unix3image.gif) _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
