Question

je comprends que syntax-rules est un système macro hygiénique, mais je ne comprends pas pourquoi cela se produit:

(define not (lambda (x) x))

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

(nand #f #t)

==> #f

Maintenant, si j'avais redéfini not après définir la macro, alors (nand #f #t) Retour #t. Pourquoi, si le système macro est censé être hygiénique?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top