From d5c58d9f8241974e15bf507af7309655f8cb1f68 Mon Sep 17 00:00:00 2001 From: Mike Sperber Date: Sun, 26 Dec 2010 09:03:10 +0100 Subject: [PATCH] Extends =~ to complex numbers This is a (variation of a) fix from David van Horn. Closes PR 11547. --- collects/lang/private/beginner-funs.rkt | 6 +++--- collects/lang/private/teachprims.rkt | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/collects/lang/private/beginner-funs.rkt b/collects/lang/private/beginner-funs.rkt index be8a2dc9bc..6771444f05 100644 --- a/collects/lang/private/beginner-funs.rkt +++ b/collects/lang/private/beginner-funs.rkt @@ -484,10 +484,10 @@ (eqv? (any any -> boolean) "to determine whether two values are equivalent from the" " perspective of all functions that can be applied to it (extensional)") - ((beginner-=~ =~) (real real non-negative-real -> boolean) - "to check whether two real numbers are within some amount (the third argument) of either other") + ((beginner-=~ =~) (number number non-negative-real -> boolean) + "to check whether two numbers are within some amount (the third argument) of either other") ((beginner-equal~? equal~?) (any any non-negative-real -> boolean) - "to compare like equal? on the first two arguments, except using =~ in the case of real numbers") + "to compare like equal? on the first two arguments, except using =~ in the case of numbers") (eof eof "the end-of-file value") (eof-object? (any -> boolean) diff --git a/collects/lang/private/teachprims.rkt b/collects/lang/private/teachprims.rkt index 39f6225d49..3e3df3adba 100644 --- a/collects/lang/private/teachprims.rkt +++ b/collects/lang/private/teachprims.rkt @@ -276,8 +276,8 @@ namespace. (current-continuation-marks))))]) (let ? ([a x][b y]) (cond - [(real? a) - (and (real? b) + [(number? a) + (and (number? b) (beginner-=~ a b epsilon))] [(procedure? a) (fail "first argument of equality cannot be a procedure, given ~e" a)] @@ -318,8 +318,8 @@ namespace. (define-teach beginner =~ (lambda (a b c) - (check-three a b c '=~ real? 'real real? 'real positive-real? 'non-negative-real) - (<= (- a c) b (+ a c)))) + (check-three a b c '=~ number? 'number number? 'number positive-real? 'non-negative-real) + (<= (magnitude (- a b)) c))) (define-teach beginner equal~? (lambda (a b c)