Domanda

lo capisco syntax-rules è un sistema macro igienico, ma non capisco perché questo accada:

(define not (lambda (x) x))

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

(nand #f #t)

==> #f

Ora, se avessi ridefinito not dopo Definizione della macro, quindi (nand #f #t) ritorna #t. Perché, se il sistema macro dovrebbe essere igienico?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top