Next: Other data types, Previous: Equivalence predicates, Up: Standard procedures [Contents][Index]

• Numerical types: | ||

• Exactness: | ||

• Implementation restrictions: | ||

• Syntax of numerical constants: | ||

• Numerical operations: | ||

• Numerical input and output: |

Numerical computation has traditionally been neglected by the Lisp community. Until Common Lisp there was no carefully thought out strategy for organizing numerical computation, and with the exception of the MacLisp system [Pitman83] little effort was made to execute numerical code efficiently. This report recognizes the excellent work of the Common Lisp committee and accepts many of their recommendations. In some ways this report simplifies and generalizes their proposals in a manner consistent with the purposes of Scheme.

It is important to distinguish between the mathematical numbers, the
Scheme numbers that attempt to model them, the machine representations
used to implement the Scheme numbers, and notations used to write numbers.
This report uses the types *number*, *complex*, *real*,
*rational*, and *integer* to refer to both mathematical numbers
and Scheme numbers. Machine representations such as fixed point and
floating point are referred to by names such as *fixnum* and
*flonum*.