J'ai une situation où je voudrais faire quelque chose comme ...Puis-je définir un global à l'intérieur d'une procédure dans Scheme?
(define (def a b)
(store a b) ; store the definition of 'a' somewhere
(define-global a b)) ; also define 'a' so that its definition
; is accessible later in the program
Est-ce possible en quelque sorte? Autant que je sache, define-global
n'existe pas, donc les instructions define
à l'intérieur des procédures ne s'appliquent qu'à l'environnement local. Ceci est destiné à créer une procédure 'def' pour un schéma DSL intégré, donc en plus de faire la définition, j'ai besoin de stocker la définition dans ma propre table de symboles. Finalement, je veux «intercepter» les recherches de symboles pour appliquer ma propre transformation, renvoyer une expression pour la recherche de symboles au lieu de l'exécuter réellement. J'utilise Gambit-C Scheme.
Merci.
Merci. J'adorerais "accrocher" dans le système de définition pour implémenter ma propre table de symboles, mais si j'essaye de le faire avec une macro par exemple cela ne semble pas marcher sur '(lire)'. Tout cela dans le but d'essayer de tirer profit du propre 'eval' de Scheme. Si j'implémente mon propre 'eval', je suppose que tout est possible, mais essayer de s'accrocher à la recherche de symboles semble impossible. :(Dommage car sinon utiliser l'eval de Scheme facilite beaucoup de choses, comme autoriser des macros définies par l'utilisateur – Steve