練習問題p101

gosh> (define (my-any-pred . preds)
           (lambda (x) (any (lambda (p) (p x)) preds)))
my-any-pred
gosh> (define sym-or-string? (my-any-pred symbol? string?))
sym-or-string?
gosh> (sym-or-string? "hoge")
#t
gosh> (sym-or-string? 10)
#f
gosh> (sym-or-string? 'hoge)
#t
gosh> (sym-or-string? :hoge)
#f
gosh> (define (my-every-pred . preds)
           (lambda (x) (every (lambda (p) (p x)) preds)))
my-every-pred
gosh> (define pos-integer? (my-every-pred integer? positive?))
pos-integer?
gosh> (pos-integer? -10)
#f
gosh> (pos-integer? 10)
#t
gosh> (map (lambda (x) (cons x (pos-integer? x))) (iota 20 -10))
((-10 . #f) (-9 . #f) (-8 . #f) (-7 . #f) (-6 . #f) (-5 . #f) (-4 . #f) (-3 . #f) (-2 . #f) (-1 . #f) (0 . #f) (1 . #t) (2 . #t) (3 . #t) (4 . #t) (5 . #t) (6 . #t) (7 . #t) (8 . #t) (9 . #t))

ただいまリフレッシュ中。