Page Numbers: Yes X: 310 Y: 10.42" First Page: 1
Margins: Top: 1.0" Bottom: 1.5"
Heading:
3-LISP WORKING GUIDE#1: Rationals
———————————————————————————————————————————
Issue #1:Rational Arithmetic
Description:If rational arithmetic is to be supported, two points must be addressed: how are these beasts notated, and what is a reasonable set of primitive (or kernel) procedures?
Status:Unresolved
Last Edited:September 15, 1982 (Jim des Rivières)
———————————————————————————————————————————
On arithmetic: Clearly we want full rational arithmetic and arbitrarily large integer numerals. We will have to have canonical designators (also called numerals, I suppose) for rational fractions. We should talk to Gosper and maybe Peter on strategies (and algorithms for GCD); I know there are various suggestions for always reducing results to minimal form, versus reducing only sometimes, etc. Presumably we could take either tack (in the latter case doing the reduction only when "=" is used). Also, we need a standard notation for rationals: like "1 1/2", or "1 1/2", or something.
There is also a bit of a question as to what kind of operations should be provided. For example, should there be any notion of approximation to within a tolerance? What about the operations of "ceiling", "floor"? Is there any way to get at the numerator and denominator of the canonical fraction representing a rational? What about "sine" and "cosine", and other useful arithmetic operations that don’t happen to be closed under the rationals?