Si je comprends bien la macro écrite ci-dessous ; La macro prend 3 arguments et produit une structure avec un constructeur qui accepte 3 arguments. Je peux deviner que la ligne qui suit immédiatement la définition de la macro crée une structure qui ressemble à.. :
(struct x (+ y x))
Je ne comprends pas comment fonctionnent les deux lignes qui suivent. Il semble que y soit lié à un x struct mais n'est-ce pas appeler le constructeur avec un argument de trop ?
(define-syntax binary-search
(syntax-rules ()
[(binary-search (node left right))
(struct left (node right x))]))
(binary-search (+ x y))
(define y (x 1 2 3))
(+ (x-+ y) (x-x y))
Je ne vais pas vous ennuyer et vous demander comment fonctionne la dernière ligne, en espérant une clarification sur la y variable me conduira à la réponse donnée de 4.