- ;; mht created on Nov 15, 2011
-
-
;; check-range1? : list-of-numbers -> boolean
-
;; to check whether all items in a-list-of-nums are in interval [5, 95]
-
(define (check-range1? a-list-of-nums)
-
(cond
-
[(empty? a-list-of-nums) true]
-
[else
-
(and
-
(is-between-5-and-95? (first a-list-of-nums))
-
(check-range1? (rest a-list-of-nums)))]))
-
-
;; is-between-5-and-95? : number -> boolean
-
(define (is-between-5-and-95? n)
-
(and
-
(< 5 n)
-
(< n 95)))
-
-
-
;; test:
-
(check-range1? empty)
-
(check-range1? (cons 25 (cons 35 (cons 90 empty))))
-
(not (check-range1? (cons 25 (cons 95 (cons 23 empty)))))
-
-
;; generalized-check-range1? : list-of-numbers number number -> boolean
-
;; to check whether all items in a-list-of-nums are in interval[n1 n2]
-
(define (generalized-check-range1? a-list-of-nums n1 n2)
-
(cond
-
[(empty? a-list-of-nums) true]
-
[else
-
(and
-
(is-between-interval? (first a-list-of-nums) n1 n2)
-
(generalized-check-range1? (rest a-list-of-nums) n1 n2))]))
-
-
;; is-between-interval? : number number number -> boolean
-
;; to determine n is in [n1 n2]
-
(define (is-between-interval? n n1 n2)
-
(and
-
(< n1 n)
-
(< n n2)))
-
-
-
;; test:
-
(generalized-check-range1? empty 5 95)
-
(generalized-check-range1? (cons 25 (cons 35 (cons 90 empty))) 5 95)
- (not (generalized-check-range1? (cons 25 (cons 95 (cons 23 empty))) 5 95))