В настоящее время я работаю над небольшим переводчиком, написанным в Форте. Для небольшой оптимизации я пытаюсь иметь слово, которое создает скомпилированные слова, например, то, что ведет себя, как это:Скомпилируйте анонимное слово в компилированном слове в Forth
: creator (-- a)
:noname (u -- u)
10 + ;
;
10 creator execute .
>> 20 ok
Если попробовал несколько подходов до сих пор и не работал (наивный, как и выше, переключение в Interpretive mode, пытаясь скомпилировать строку источника Forth). Возможно ли это?
Спасибо это выглядит весьма перспективным. Я попробую, как только вернусь к машине с четверкой. –
Возможно, две полезные ссылки, которые я нашел после эксперимента с вашим решением: http://compgroups.net/comp.lang.forth/lambda-+-currying-bigforth-gforth-question/1260723 http: // www. 4th-ev.de/repos/bigforth/lambda.fs –
Вы также можете проверить]] [[макросы (в gforth и, возможно, другие). С ними код становится: ': creator: noname 10]] literal +; [[; ' –