Racket 有内置的基本形式 2-arm if
,但它没有这个词else
,所以我想给else
它加上这个词。
此代码有效:
(require syntax/parse/define)
(define-syntax-rule (myif Cond Form1 else Form2)
(if Cond Form1 Form2)
)
(myif #t (displayln 1) else (displayln 2))
但是myif
不希望作为关键字,将其更改为if
会引发错误:
if: use does not match pattern: (if Cond Form1 else Form2)
in: (if #t (displayln 1) (displayln 2))
如何重新定义表格if
?