From b1e9e9ea828b35d5bb4dfaf1d4def487b086da11 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Wed, 26 May 2010 19:13:08 -0400 Subject: [PATCH] Better type for `round'. original commit: 40c77586a059efc6a09a6ef0bdf73a35808f24b0 --- .../typed-scheme/private/base-env-numeric.rkt | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/collects/typed-scheme/private/base-env-numeric.rkt b/collects/typed-scheme/private/base-env-numeric.rkt index c80d9ad6..61becebd 100644 --- a/collects/typed-scheme/private/base-env-numeric.rkt +++ b/collects/typed-scheme/private/base-env-numeric.rkt @@ -19,6 +19,8 @@ (define-for-syntax binop (lambda (t [r t]) (t t . -> . r))) + (define-for-syntax rounder + (cl->* (-> -ExactRational -Integer) (-> -Flonum -Flonum) (-> -Real -Real))) (define-for-syntax (unop t) (-> t t)) @@ -112,18 +114,10 @@ (-Real . -> . -ExactRational) (N . -> . N))] -[floor (cl->* - (-> -ExactRational -Integer) - (-> -Flonum -Flonum) - (-> -Real -Real))] -[ceiling (cl->* - (-> -ExactRational -Integer) - (-> -Flonum -Flonum) - (-> -Real -Real))] -[truncate (cl->* - (-> -ExactRational -Integer) - (-> -Flonum -Flonum) - (-> -Real -Real))] +[floor rounder] +[ceiling rounder] +[truncate rounder] +[round rounder] [make-rectangular (-Real -Real . -> . N)] [make-polar (-Real -Real . -> . N)] [real-part (N . -> . -Real)] @@ -150,8 +144,6 @@ [gcd (null -Integer . ->* . -Integer)] [lcm (null -Integer . ->* . -Integer)] -[round (-Real . -> . -Real)] - ;; scheme/math [sgn (-Real . -> . -Real)]