Je travaille actuellement sur un petit interprète écrit en Forth. Pour une petite optimisation que je suis en train d'avoir un mot qui crée des mots compilés, par exemple, quelque chose qui se comporte comme ceci:Compiler un mot anonyme dans un mot compilé en Forth
: creator (-- a)
:noname (u -- u)
10 + ;
;
10 creator execute .
>> 20 ok
Si essayé plusieurs approches à ce jour et non travaillé (comme ci-dessus naïve, commutation d'interprétation mode, en essayant de compiler une chaîne de source Forth). Est-ce réellement possible?
Merci cela semble très prometteur. Je vais l'essayer dès que je serai de retour à une machine avec avant. –
Peut-être deux liens utiles que j'ai trouvés après avoir expérimenté votre solution: http://compgroups.net/comp.lang.forth/lambda-+currying-bigforth-gforth-question/1260723 http: // www. forth-ev.de/repos/bigforth/lambda.fs –
Vous pouvez également vérifier]] [[macros (dans gforth et éventuellement d'autres). Avec ceux-ci, le code devient: ': creator: noname 10]] literal +; [[; ' –