Changed the types of some numerical operations to be closed on naturals.

This commit is contained in:
Vincent St-Amour 2010-05-29 11:29:39 -04:00
parent 56b94b1bdf
commit 2229173b82
3 changed files with 11 additions and 7 deletions

View File

@ -556,7 +556,7 @@
[(a*) (quotient 5 12)]
[(b*) (remainder 5 12)])
(+ a b a* b*))
-Integer]
-Nat]
[tc-e (raise-type-error 'foo "bar" 5) (t:Un)]
[tc-e (raise-type-error 'foo "bar" 7 (list 5)) (t:Un)]

View File

@ -104,7 +104,7 @@
[build-vector (-poly (a) (-Nat (-Nat . -> . a) . -> . (-vec a)))]
[vector-set! (-poly (a) (-> (-vec a) -Nat a -Void))]
[vector-copy! (-poly (a) ((-vec a) -Nat (-vec a) [-Nat -Nat] . ->opt . -Void))]
[make-vector (-poly (a) (cl-> [(-Nat) (-vec -Integer)]
[make-vector (-poly (a) (cl-> [(-Nat) (-vec -Nat)]
[(-Nat a) (-vec a)]))]
[peek-char

View File

@ -101,10 +101,12 @@
(-> -Real -Real)
(-> N N))]
[quotient (-Integer -Integer . -> . -Integer)]
[remainder (-Integer -Integer . -> . -Integer)]
[quotient/remainder
(make-Function (list (make-arr (list -Integer -Integer) (-values (list -Integer -Integer)))))]
[quotient (cl->* (-Nat -Nat . -> . -Nat)
(-Integer -Integer . -> . -Integer))]
[remainder (cl->* (-Nat -Nat . -> . -Nat)
(-Integer -Integer . -> . -Integer))]
[quotient/remainder (cl->* (-Nat -Nat . -> . (-values (list -Nat -Nat)))
(-Integer -Integer . -> . (-values (list -Integer -Integer))))]
;; exactness
[exact->inexact (cl->*
@ -127,7 +129,9 @@
[numerator (-Real . -> . -Real)]
[denominator (-Real . -> . -Real)]
[rationalize (-Real -Real . -> . N)]
[expt (cl->* (-Integer -Integer . -> . -Integer) (N N . -> . N))]
[expt (cl->* (-Nat -Nat . -> . -Nat)
(-Integer -Integer . -> . -Integer)
(N N . -> . N))]
[sqrt (cl->*
(-Nat . -> . -Real)
(N . -> . N))]