when-let-test.rkt (740B)
1 #lang racket 2 3 (require anaphoric/when-let 4 rackunit) 5 6 (define lst '(x y z a b c)) 7 (define seen 0) 8 9 (check-equal? (when-let [x (member 'absent lst)] 10 (fail "awhen should not have executed body") 11 'seen) 12 (void)) 13 14 (check-equal? (when-let [x (member 'a lst)] 15 x) 16 '(a b c)) 17 18 (check-equal? (let ([x 'outer]) 19 (list (when-let [x (member 'a lst)] 20 x) 21 x)) 22 '((a b c) outer)) 23 24 (check-equal? (when-let [x (member 'a lst)] 25 (set! seen (add1 seen)) 26 (check-equal? x '(a b c)) 27 'seen) 28 'seen) 29 (check-equal? seen 1) ;; Multiple body statements