From 74acafaa8d0f26b2dc55ab17f2b1ac219902ef2f Mon Sep 17 00:00:00 2001 From: Stephen Adams Date: Mon, 20 Feb 1995 20:13:39 +0000 Subject: [PATCH] Added FORM/NUMBER? and diddled with careful operators stuff. --- v8/src/compiler/midend/utils.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/v8/src/compiler/midend/utils.scm b/v8/src/compiler/midend/utils.scm index ef0525375..de8044b16 100644 --- a/v8/src/compiler/midend/utils.scm +++ b/v8/src/compiler/midend/utils.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: utils.scm,v 1.13 1995/02/20 18:24:41 adams Exp $ +$Id: utils.scm,v 1.14 1995/02/20 20:13:39 adams Exp $ Copyright (c) 1994 Massachusetts Institute of Technology @@ -578,6 +578,11 @@ Example use of FORM/COPY-TRANSFORMING: (lambda (rator) (and (pseudo-simple-operator? rator) (operator/satisfies? rator '(SIDE-EFFECT-FREE)))))) + +(define (form/number? form) + (and (QUOTE/? form) + (number? (quote/text form)) + (quote/text form))) (define (binding-context-type keyword context bindings) (if (or (eq? keyword 'LETREC) @@ -1056,17 +1061,17 @@ Example use of FORM/COPY-TRANSFORMING: (set! unmap-careful (lambda (v) (if (eq? v careful-false) '#F v)))) (define (careful/quotient x y) - (if (and (number? x) (number? y) (not (zero? y)) + (if (and (number? x) (number? y) (not (zero? y))) (quotient x y) (careful-error "quotient: Domain error" x y))) (define (careful/remainder x y) - (if (and (number? x) (number? y) (not (zero? y)) + (if (and (number? x) (number? y) (not (zero? y))) (remainder x y) (careful-error "remainder: Domain error" x y))) (define (careful// x y) - (if (and (number? x) (number? y) (not (zero? y)) + (if (and (number? x) (number? y) (not (zero? y))) (/ x y) (careful-error "/: Domain error" x y))) @@ -1151,4 +1156,4 @@ Example use of FORM/COPY-TRANSFORMING: ((QUOTE/? program) (+ size 1)) (else - (walk (car program) (walk (cdr program) (+ size 1))))))) \ No newline at end of file + (walk (car program) (walk (cdr program) (+ size 1))))))) -- 2.25.1