diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2023-05-07 16:36:29 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2023-05-07 16:36:29 +0200 |
| commit | d1bfadf2a338c25cb19ee2043501b293ea2081b3 (patch) | |
| tree | ed0088b0460ce57d5d13f81260355794502fe1ec /coding-exercises/2/83/install-real.rkt | |
| parent | ff2fe157be4009d111935deb9c0b85d358e99993 (diff) | |
fix some bugs while doing 91
Diffstat (limited to 'coding-exercises/2/83/install-real.rkt')
| -rw-r--r-- | coding-exercises/2/83/install-real.rkt | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/coding-exercises/2/83/install-real.rkt b/coding-exercises/2/83/install-real.rkt index 6b96137..356ac92 100644 --- a/coding-exercises/2/83/install-real.rkt +++ b/coding-exercises/2/83/install-real.rkt @@ -3,11 +3,15 @@ (require "../../../shared/data-directed-programming.rkt") (define (install-real put get) + (define threshold 0.00001) ;; local methods (define (tagme datum) (attach-tag 'real datum)) (define (make i) - (exact->inexact i)) + (let ((n (exact->inexact i))) + (if (< n threshold) + 0.0 + n))) (define (raiseme r) ((get 'make-from-real-imag 'complex) r 0)) ;; constructor @@ -29,5 +33,5 @@ (put 'atan '(real real) (lambda (x y) (atan x y))) ;; predicates (put 'equ? '(real real) (lambda (x y) (= x y))) - (put '=zero? '(real) (lambda (x) (= 0 x))) + (put '=zero? '(real) (lambda (x) (< x threshold))) 'done) |
