Formal comment #27 (simplification)
Some generic arithmetic procedures should be put in a library
Reported by: John Cowan
Component: baselibrary
Version: 5.91
I recommend that the library be named (r6rs arithmetic generic).
As a first cut, I recommend that the following procedures be put
there:
{real,rational,integer}-valued
gcd
lcm
rationalize
sin, cos, tan, asin, acos, atan
sqrt
expt
RESPONSE:
The formal comment does not offer a rationale. All procedures on
the above list, except for `{real,rational,integer}-valued', were
part of previous versions of the report, presumably because they
are used by many programs that perform numerical computations.
The rationale for `{real,rational,integer}-valued' is the subject
of another formal comment by the same person. (Formal comment #28.)
After considering several formal comments that dealt with the
arithmetic libraries, the editors decided to remove the
(r6rs arithmetic fixnum), (r6rs arithmetic exact), and
(r6rs arithmetic inexact) libraries, moving some of their
procedures to a new (r6rs arithmetic bitwise) library and
adding a couple of procedures (integer-expt and integer-sqrt)
to the (r6rs base) library.
The editors did not perceive any clear advantage to creating
a new (r6rs arithmetic generic) library, nor did they see any
obvious guiding principles for deciding which of the various
(r6rs base) procedures should be moved to that library if it
were created.