kzccm1d4if10m2xaz1wqy3xar821pp1r-my-site-anaphoric-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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