(define-syntax cond-list (syntax-rules () ((cond-list) (list)) ((cond-list (c e) . rest) (if c (cons e (cond-list . rest)) (cond-list . rest))))) #;2> (cond-list) () #;3> (cond-list (#t 1) (#t 2)) (1 2) #;4> (cond-list (#t 1) (#f 2)) (1) #;5> (cond-list (#f 1) (#f 2)) () #;6> (cond-list (#f 1) (#t 2)) (2)