use exact-integer? instead of integer?

use (Listof Any) instead of List

svn: r13437
This commit is contained in:
Sam Tobin-Hochstadt 2009-02-04 23:06:35 +00:00
parent 11fc8c8906
commit 52d711e0bd
3 changed files with 8 additions and 7 deletions

View File

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

View File

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

View File

@ -344,7 +344,7 @@
(maximum-sexp-depth interval max-sexp-depth)
(average-sexp-depth interval avg-sexp-depth)
(number-of-setbangs/mod interval count-setbangs/ilist)
(number-of-exprs #{interval @ List} #{length @ Any})
(number-of-exprs #{interval @ (Listof Any)} #{length @ Any})
(uses-setbang?/mod count module-has-setbangs?)
(uses-contracts? count uses-contracts)
(number-of-contracts interval contracted-provides)
@ -540,8 +540,8 @@
; just in case i want to do some more analysis on the results afterwards,
; so i don't have to waste a minute if i forget to bind the return value to something
(define: (run-all-tests) : top
(let*: ([rs1 : (Listof (Result (Listof NumF) (Listof Atom-display) List))
(#{compare* @ (Listof Atom-display) List}
(let*: ([rs1 : (Listof (Result (Listof NumF) (Listof Atom-display) (Listof Any)))
(#{compare* @ (Listof Atom-display) (Listof Any)}
(list module-metrics))]
[rs2 : (Listof (Result (Listof NumF) (Listof Atom-display) Any))
(#{compare* @ (Listof Atom-display) Any}
@ -549,7 +549,7 @@
(let
([rs (append rs1 rs2)])
(set! results rs)
(for-each #{pretty-print-result @ List} rs1)
(for-each #{pretty-print-result @ (Listof Any)} rs1)
(for-each #{pretty-print-result @ Any} rs2)
rs)))