Name: Anonymous 2011-01-28 10:46
because HAS NO MACROS.
(defmacro aif (cond then else)
`(let ((it ,cond))
(if it ,then ,else)))
#lang racket
(require racket/stxparam)
(define-syntax-parameter it (λ (stx) (raise-syntax-error 'anaphora "missed context" stx)))
(define-syntax-rule (aif cond then else)
(let ([temp cond])
(syntax-parameterize ([it (make-rename-transformer #`temp)])
(if temp then else))))