From: Arthur Gleckler Date: Thu, 12 Sep 1991 21:11:17 +0000 (+0000) Subject: Make CEILING, FLOOR, ROUND, and TRUNCATE coerce their results to X-Git-Tag: 20090517-FFI~10216 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=ade229d8ca2dc7ba5989280551f50db408a5f94d;p=mit-scheme.git Make CEILING, FLOOR, ROUND, and TRUNCATE coerce their results to exact numbers. --- diff --git a/v7/src/sicp/compat.scm b/v7/src/sicp/compat.scm index 3ac86726e..bcf2d35c3 100644 --- a/v7/src/sicp/compat.scm +++ b/v7/src/sicp/compat.scm @@ -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)) diff --git a/v7/src/sicp/studen.scm b/v7/src/sicp/studen.scm index 88fed6935..a93990643 100644 --- a/v7/src/sicp/studen.scm +++ b/v7/src/sicp/studen.scm @@ -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) @@ -417,7 +417,7 @@ MIT in each case. |# (TRACE-ENTRY) (TRACE-EXIT) (TRUE) - (TRUNCATE) + (TRUNCATE . TRUNCATE->EXACT) (UNADVISE) (UNADVISE-ENTRY) (UNADVISE-EXIT)