Fix tests with even?

Add test for struct syntax info.

svn: r12095

original commit: 24c4d0b3fc067072677cd6037657247a315aaccb
This commit is contained in:
Sam Tobin-Hochstadt 2008-10-22 21:07:31 +00:00
parent 6eb9152bd1
commit 5308710cd1
3 changed files with 6 additions and 2 deletions

View File

@ -6,7 +6,7 @@
(define: (element-of? [elt : top] [s : set]) : top (s elt))
(define: (evens [elt : top]) : top (and (number? elt) (even? elt)))
(define: (evens [elt : top]) : top (and (integer? elt) (even? elt)))
(define-typed-struct pr ([fst : top] [snd : top]))

View File

@ -334,9 +334,10 @@
(build (second (first pair))
(second pair))))
;; changed to test for integer? before even? check.
(define: (collatz [n : number]) : number
(cond [(one? n) 1]
[(even? n) (collatz (/ n 2))]
[(and (integer? n) (even? n)) (collatz (/ n 2))]
[else (collatz (add1 (* 3 n)))]))

View File

@ -0,0 +1,3 @@
#lang typed-scheme
(require-typed-struct posn ([x : Number] [y : Number]) lang/posn)
(provide (struct-out posn))