Что случилось с галочкой в ​​ANS Forth?

Насколько я помнил слово «галочка» из FIG-Forth, его можно было использовать без прерывания, если слова не было в списке слов:

' the_word 

давал ссылку на слово, если оно было в списке слов, и давал «ложь» в противном случае.

Можно ли создать что-то подобное в ANS Forth для использования с [if], [then] и [else]?


person Lehs    schedule 01.12.2015    source источник


Ответы (2)


Я предполагаю что-то вроде этого:

: tick ( a u -- xt|f ) bl word find 0= if drop 0 then ;
person Lars Brinkhoff    schedule 01.12.2015

В документе FIG-Forth говорится:

Оставляет адрес поля параметра словарного слова nnnn. Как директива компилятора, выполняется в определении с двоеточием для компиляции адреса как литерала. Если слово не найдено после поиска CONTEXT и CURRENT, выдается соответствующее сообщение об ошибке.

Хотя вполне возможно, что версия FIG-Forth, где вы использовали, не соблюдала стандарт и вернула false.

person Peter Knaggs    schedule 31.12.2015