質問

という事は承知しています syntax-rules 衛生的なマクロシステムですが、なぜこれが起こるのかわかりません。

(define not (lambda (x) x))

(define-syntax nand
  (syntax-rules ()
    ((_ a b)
     (not (and a b)))))

(nand #f #t)

==> #f

今、私が再定義していたなら not その後、マクロを定義します (nand #f #t) 戻り値 #t. 。マクロシステムが衛生的であると思われるのはなぜですか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top