On dit que les macros de schémas, au moins la syntaxe-casse, permettent un calcul arbitraire sur le code à transformer. Cependant (à la fois dans le cas général et dans le cas spécifique que je suis en train de regarder) cela nécessite que le calcul soit spécifié en termes de fonctions récursives. Quand j'essaie différentes variantes de ceci, je reçois par exempleCalcul arbitraire dans la macro Scheme
main.scm: 32: 71: compiler: identificateur non lié dans le module (dans l'environnement du transformateur, qui ne comprend pas à la définition d'exécution) dans: expand-vars
(La mise en oeuvre est Raquette, si ça compte.)
Le résultat semble être que vous ne pouvez pas définir les fonctions nommées avant le traitement de la macro. Je suppose que je pourrais avoir recours au combinateur Y, mais je me dis que cela vaut la peine de demander d'abord s'il existe une meilleure approche?