Make CEILING, FLOOR, ROUND, and TRUNCATE coerce their results to
authorArthur Gleckler <edu/mit/csail/zurich/arthur>
Thu, 12 Sep 1991 21:11:17 +0000 (21:11 +0000)
committerArthur Gleckler <edu/mit/csail/zurich/arthur>
Thu, 12 Sep 1991 21:11:17 +0000 (21:11 +0000)
exact numbers.

v7/src/sicp/compat.scm
v7/src/sicp/studen.scm

index 3ac86726e6d6f778c52ea6549e644599f851aa33..bcf2d35c3bc485964fb69b3de0240924a26d3574 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sicp/compat.scm,v 1.4 1991/05/04 21:51:19 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sicp/compat.scm,v 1.5 1991/09/12 21:11:17 arthur Exp $
 
 Copyright (c) 1987, 1988, 1989, 1990 Massachusetts Institute of Technology
 
@@ -172,6 +172,18 @@ MIT in each case. |#
     (set! *unparser-list-breadth-limit* newval)
     unspecific))
 
+(define (ceiling->exact number)
+  (inexact->exact (ceiling number)))
+
+(define (floor->exact number)
+  (inexact->exact (ceiling number)))
+
+(define (round->exact number)
+  (inexact->exact (ceiling number)))
+
+(define (truncate->exact number)
+  (inexact->exact (ceiling number)))
+
 (define (vector-cons size fill)
   (make-vector size fill))
 
index 88fed6935d42573c7c51388bc78cfc02ab88a0ab..a93990643e19208883511227464ad9206ae31a8e 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sicp/studen.scm,v 1.8 1991/04/06 06:34:33 jinx Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/sicp/studen.scm,v 1.9 1991/09/12 21:11:09 arthur Exp $
 
 Copyright (c) 1987-91 Massachusetts Institute of Technology
 
@@ -287,7 +287,7 @@ MIT in each case. |#
     (CDDDDR)
     (CDDDR)
     (CDDR)
-    (CEILING)
+    (CEILING . CEILING->EXACT)
     (CHAR)
     (CLEAR-GRAPHICS)
     (CLEAR-POINT)
@@ -323,7 +323,7 @@ MIT in each case. |#
     (FIRST)
     (FLATMAP)
     (FLATTEN)
-    (FLOOR)
+    (FLOOR . FLOOR->EXACT)
     (FORCE)
     (FOURTH)
     (GCD)
@@ -393,7 +393,7 @@ MIT in each case. |#
     (REMAINDER)
     (RESTART)
     (REVERSE)
-    (ROUND)
+    (ROUND . ROUND->EXACT)
     (RUNTIME)
     (SCALE-STREAM)
 \f
@@ -417,7 +417,7 @@ MIT in each case. |#
     (TRACE-ENTRY)
     (TRACE-EXIT)
     (TRUE)
-    (TRUNCATE)
+    (TRUNCATE . TRUNCATE->EXACT)
     (UNADVISE)
     (UNADVISE-ENTRY)
     (UNADVISE-EXIT)