Редактирование: 0=
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''0=''' (нулю равно) — стандартное слово [[Каллисто]]. Проверить на равенство нулю. | '''0=''' (нулю равно) — стандартное слово [[Каллисто]]. Проверить на равенство нулю. | ||
0= ( x -- f ) | 0= ( x -- f ) | ||
Сравнивает x с | Сравнивает x с нулём и засылает в стек флаг «истинно» (f=-1), если x равен нулю и флаг «ложно» (f=0), если x отличен от нуля. | ||
== Ввод слова 0= == | == Ввод слова 0= == | ||
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] {{ШГ←}} | В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ШГ влево|{{Чёрная клавиша|ШГ←}}]] | ||
== 0= и | == Детали реализации == | ||
Если на стеке лежит логическое значение (флаг), слово 0= меняет его противоположное. Флаг «истинно» (x=-1 и любое ненулевое значение) превращается во флаг «ложно» (f=0). Флаг «ложно» (x=0) превратится во флаг «истинно» (f=-1). Этим объясняется широкая практика использования 0= для логического отрицания. Фактически это слово NOT, и во многих Фортах оно имеет такое второе название. | |||
Слово 0= возвращает -1 в качестве флага «истинно», что позволяет использовать результат f в логических операция [[AND]], [[OR]], [[XOR]] и [[Слово NOT|NOT]]. Разумеется, при этом другие аргументы этих операций тоже должны использовать -1 в качестве флага «истинно». Все слова [[Каллисто]], возвращающие флаги, используют в качестве флага «истинно» -1. | |||
В отличии от [[Слово NOT|NOT]], слово 0= превращает во флаг «ложь» не только -1, но и любое ненулевое значение. Применив 0= дважды, можно «нормализовать» флаг, превратив любое ненулевое значение в -1. | |||
== 0= в стандарте ANS Forth == | |||
6.1.0270 0= "zero-equals" CORE | 6.1.0270 0= "zero-equals" CORE | ||
( x -- flag ) | ( x -- flag ) | ||
flag - true, если и только если x - равно нулю. | flag - true, если и только если x - равно нулю. | ||
== F0= в стандарте ANS Forth == | |||
12.6.1.1450 F0= "f-zero-equals" FLOATING | 12.6.1.1450 F0= "f-zero-equals" FLOATING | ||
( -- flag ) ( F: r -- ) or ( r -- flag ) | ( -- flag ) ( F: r -- ) or ( r -- flag ) | ||
flag - true, если и только если r - равно нулю. | flag - true, если и только если r - равно нулю. | ||
== 0= в предыдущем стандарте Forth-83 (англ.) == | |||
0= w -- flag 83 "zero-equals" | 0= w -- flag 83 "zero-equals" | ||
flag is true if w is zero. | flag is true if w is zero. | ||
== 0= в стандарте Forth-79 (англ.) == | |||
0= n -- flag 180 "zero-equals" | 0= n -- flag 180 "zero-equals" | ||
True if n is zero. | True if n is zero. | ||
== 0= в fig-FORTH Release 1 glossary, май 1979 (англ.) == | |||
0= n --- f L0 | 0= n --- f L0 | ||
Leave a true flag is the number is equal to zero, otherwise leave a | Leave a true flag is the number is equal to zero, otherwise leave a | ||
false flag. | false flag. | ||
== | == История == | ||
В Форте-79 слово NOT было определено, как синоним [[0=]] | |||
0= | |||
Если программы переносятся с fig-Форта на [[Каллисто]], их слово NOT должно заменяться на 0= | |||
== Ссылки == | == Ссылки == | ||
* См. слова [[Слово NOT|NOT]] [[0⟨|0<]] [[0⟩|0>]] | |||
* См. слова [[NOT | |||
* Слова [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0270 0= (zero-equals)] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1450 F0= (f-zero-equals)] в стандарте ANS Forth ''(англ.)'' | * Слова [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0270 0= (zero-equals)] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1450 F0= (f-zero-equals)] в стандарте ANS Forth ''(англ.)'' | ||
* Слова [http:// | * Слова [http://www.forth200x.org/documents/html3/core/ZeroEqual.html 0= (zero-equals)] и [http://www.forth200x.org/documents/html3/floating/FZeroEqual.html F0= (f-zero-equals)] в черновике Forth 200x ''(англ.)'' | ||
{{нет иллюстраций}} | |||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Одноместные операции Каллисто]] | [[Категория:Одноместные операции Каллисто]] | ||
[[Категория:Операции сравнения Каллисто]] | [[Категория:Операции сравнения Каллисто]] | ||
[[Категория: | [[Категория:Описание бета-версии Каллисто]] | ||