1;;;; scrutiny-tests-2.scm 2 3 4(define-syntax predicate 5 (syntax-rules () 6 ((_ pred (proto ...) (nonproto ...)) 7 (begin 8 (assert (pred proto)) ... 9 (assert (not (pred nonproto))) ...)))) 10 11 12;;; 13 14(let* ((p '(1 . 2)) 15 (l (list)) 16 (n '()) 17 (i 123) 18 (f 12.3) 19 (u (+ i f))) 20 (predicate pair? (p) (l n i f)) 21 (predicate list? (l n) (p i f)) 22 (predicate null? (n l) (p i f)) 23 (predicate fixnum? (i) (f u)) 24 (predicate exact? (i) (f u)) 25 (predicate flonum? (f u) (i)) 26 (predicate inexact? (f u) (i)) 27 (predicate number? (i f u) (n))) 28