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

*To*: jaffer@martigny.ai.mit.edu*Subject*: four issues for R5RS meeting at Xerox PARC*From*: Chris Hanson <cph@martigny.ai.mit.edu>*Date*: Mon, 18 May 92 13:42:28 -0400*Cc*: rrrs-authors@mc.lcs.mit.edu*In-Reply-To*: Msg of Sun, 17 May 92 14:24:59 -0400 from Aubrey Jaffer <jaffer@martigny.ai.mit.edu>

Date: Sun, 17 May 92 14:24:59 -0400 From: Aubrey Jaffer <jaffer@martigny.ai.mit.edu> <1> Section 6.5.3 should be clearer about what (/ 5 3) should do in an integers only implementation and in the case of an implementation with inexeacts but no rational numbers. Implementations are encouraged, but not required, ... and to implement the above procedures and the / procedure in such a way that they always return exact results when given exact arguments. If one of these procedures is unable to deliver an exact result when given exact arguments, then it may either report a violation of an implementation restriction or it may silently coerce its result to an inexact number. Such a coercion may cause an error later. As stated, (/ 5 3) should return 1 even if the implementation had inexact numbers. It should say something about the Mathematically expected result (as it does for the other functions in the paragraph before the one I quoted). There was some discussion of this last year but I can't find copies of the messages. The IEEE standard has different wording for this paragraph that limits the implementation options: Implementations should support exact integers and exact rationals of practically unlimited size and precision, and to implement [sic] the above procedures and the / procedure in such a way that they always return exact results when given exact arguments. If one of these procedures is unable to deliver an exact result when given exact arguments, then it may either report a violation of an implementation restriction or it may silently coerce its result to an inexact number. Such a coercion may cause an error later. This requires an exact answer, an inexact answer, or violation of an implementation restriction. Under no circumstances may `(/ 5 3)' return `1'; it may return `5/3' or `1.' or some other inexact number, or signal an error. <4> Do any implementations have APPLY which accepts only 2 arguments? If not, could APPLY of more than 2 arguments be made essential or is there some other rationale for this? The IEEE standard requires `apply' to accept more than 2 arguments. For both of these cases, perhaps the report should be modified to be in agreement with the standard.

- Prev by Date:
**Proposal for EVAL** - Next by Date:
**Re: n-ary functions rfc** - Prev by thread:
**Proposal for EVAL** - Next by thread:
**four issues for R5RS meeting at Xerox PARC** - Index(es):