compatibility/compatibility-lib/mzscheme/private/old-if.rkt
2014-12-02 09:43:08 -05:00

33 lines
934 B
Racket

(module old-if '#%kernel
(#%require (for-syntax '#%kernel))
(#%provide if*)
(define-syntaxes (if*)
(lambda (stx)
(let-values ([(if-stx) (quote-syntax if)])
(if (pair? (syntax-e stx))
(let-values ([(l) (syntax->list stx)])
(if (if l
(if (= (length l) 3)
#t
#f)
#f)
(datum->syntax
stx
(list if-stx
(cadr l)
(caddr l)
(quote-syntax (void)))
stx
stx)
(datum->syntax
stx
(cons if-stx
(cdr (syntax-e stx)))
stx
stx)))
(datum->syntax
if-stx
'if
stx))))))