является словом, вы обязаны отделять
Поскольку ( является словом, вы обязаны отделять этот символ пробелом так же, как и в случае применения слова
."1.
Вы можете использовать обычный комментарий внутри некоторого определения следующим образом: :
НИЧЕГО ( это слово ничего не выполняет ) ;
Текст «это слово ничего не выполняет» является комментарием. Вернемся к стековой нотации. Основной формат комментария этого вида выглядит так: ( -- )
1 Для начинающих. Закрывающая круглая скобка не является словом. Это просто
символ, который служит ограничителем для слова
( . (Вспомните, что для слова
." ограничителем является символ
")
Такой комментарий означает, что данное определение никакого эффекта на стек не оказывает. К словам подобного рода относится CR или специфицированное нами слово STAR. (Во время своего исполнения слово STAR помещает в стек число 42, но извлекает его из стека до завершения работы, так что стековых эффектов в рассматриваемом случае нет.) Принято отделять стековую нотацию от имени определения двумя пробелами:
: STAR ( -- ) 42
EMIT ;
Напоминаем, что стековая нотация ничего не значит для Форта, но очень помогает программисту, пытающемуся разобраться в конкретной программе.
Если некоторое слово должно выбрать из стека аргументы, то эти аргументы перечисляются слева от двойного дефиса. Например, стековая нотация для слова . («точка») выглядит следующим образом: ( n -- )
(Буква n заменяет число.) Если слово возвращает стеку аргументы, то они перечисляются справа от двойного дефиса. Стековая нотация для слова
+ имеет вид:
( n1 n2 — сумма )
Для обозначения аргументов вы можете использовать имена, сокращения или просто нумеровать их: nl, n2, nЗ и т. д., как было сделано в приведенном выше примере.
Когда вы указываете несколько аргументов справа или слева от дефиса, необходимо строго соблюдать порядок их размещения. Запомните следующее правило: крайний правый объект в стековой нотации является верхним элементом стека.
Это легко запоминается, поскольку перечисление аргументов в стековой нотации совпадает с порядком их ввода.
Содержание Назад Вперед