and.rkt (322B)
1 #lang racket 2 3 (provide preexpanded-and) 4 5 (require syntax/parse 6 (for-template racket/base)) 7 8 (define (preexpanded-and stx) 9 (syntax-parse stx 10 [(clause) 11 #'clause] 12 [(#t . rest) 13 (preexpanded-and #`rest)] 14 [(clause . rest) 15 #`(if clause 16 #,(preexpanded-and #`rest) 17 #f)]))