Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''0>''' (нуля больше) — стандартное слово [[Каллисто]]. Проверить, положительное ли число. | | '''0>''' (нуля больше) — стандартное слово [[Каллисто]]. Проверка, положительное ли число. |
| 0> ( x -- f ) Проверка на положительность. | | 0> ( x -- f ) |
| Сравнивает x с нулём и засылает в [[Стек данных|стек]] флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0.
| |
|
| |
|
| == Ввод слова 0> == | | Сравнивает x с нулём и засылает в стек флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0. |
| В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
| |
|
| |
|
| == 0> в стандарте ANS Forth == | | == 0> в стандарте ANS Forth == |
Строка 11: |
Строка 9: |
| flag - true, если и только если n - больше нуля. | | flag - true, если и только если n - больше нуля. |
|
| |
|
| == История ==
| | == 0> в предыдущем стандарте Forth-83 (англ.) == |
| Удивительно, но это слово чуть «менее» стандартно, чем [[0⟨|0<]] — входящее в ядро CORE стандарта 1994 года и готовящегося стандарта Форта
| |
| | |
| === 0> в предыдущем стандарте Forth-83 (англ.) ===
| |
| 0> n -- flag 83 "zero-greater" | | 0> n -- flag 83 "zero-greater" |
| flag is true if n is greater than zero. | | flag is true if n is greater than zero. |
|
| |
|
| === 0> в стандарте Forth-79 (англ.) ===
| | == 0> в стандарте Forth-79 (англ.) == |
| 0> n -- flag 118 "zero-greater" | | 0> n -- flag 118 "zero-greater" |
| True if n is greater than zero. | | True if n is greater than zero. |
|
| |
| == Реализация ==
| |
| Слово 0> в качестве флага «истинно» возвращает -1, что позволяет использовать результат f в логических операция [[AND]], [[OR]], [[XOR]] и [[NOT]]. Разумеется, при этом другие аргументы этих операций тоже должны использовать -1 в качестве флага «истинно». Все слова [[Каллисто]], возвращающие флаги, используют в качестве флага «истинно» -1.
| |
| <pre>
| |
| 877 STF: Cx PKM03 KGOTO9 ; [SP] := 0; NEXT
| |
| 878
| |
| 879 ;#ZeroMore
| |
| 880 ; 0> ( x −− f ) Проверить на положительность.
| |
| 881 LZGRET: .DB 2
| |
| 882 .TEXT "0>" ; ( x −− флаг )
| |
| 883 .DW LZEQU
| |
| 884 ZGRET: .DW JZGRET
| |
| 885 JZGRET: PKRM03 +/− PX<0 STF
| |
| 886 STT: 1 +/− PKM03 KGOTO9 ; [SP] := −1; NEXT
| |
| </pre>
| |
| Реализация из SP-Forth 4.20:
| |
| <pre>
| |
| : 0> ( n -- flag ) \ 94 CORE EXT
| |
| \ flag "истина" тогда и только тогда, когда n больше нуля
| |
| 0 >
| |
| ;
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| В FORTH ИТЭФ слово 0> было [[примитив]]ом, вот его определение:
| |
| <PRE>
| |
| HEAD 202Q,'0',276Q,ZGRET ; 0>
| |
| POP AX
| |
| CMP AX, 0
| |
| JG TRUE
| |
| JMP FALSE
| |
| </PRE>
| |
| Метки TRUE и FALSE см. в определении слова [[0=]]
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|ZeroMore|0>}}
| | * См. слова [[0=]] [[0⟨|0<]] |
| * См. слова [[⟩|>]], [[0=]] и [[0⟨|0<]] | | * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.0280 Слово 0> (zero-greater) в стандарте ANS Forth] ''(англ.)'' |
| * См. также [[Символ с кодом 62|символ >]] | | * [http://www.forth200x.org/documents/html/core.html#core:0more Слово 0> (zero-greater) в черновике Forth 200x] ''(англ.)'' |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.0280 0> (zero-greater)] в стандарте ANS Forth ''(англ.)''
| |
| * Слово [http://forth-standard.org/standard/core/Zeromore 0> (zero-greater)] в черновике Forth 200x ''(англ.)'' | |
| * [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\04.%20KOMPJUTER%20%22PRINIMAET%20RESENIA%22 КОМПЬЮТЕР "ПРИНИМАЕТ РЕШЕНИЯ"] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
| |
| * [http://www.forth.com/starting-forth/sf4/sf4.html Decisions, Decisions…] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
| |
|
| |
|
|
| |
|
Строка 68: |
Строка 26: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Одноместные операции Каллисто]] | | [[Категория:Одноместные операции Каллисто]] |
| [[Категория:Операции сравнения Каллисто]] | | [[Категория:Операции сравнения Каллисто]] |
| [[Категория:Стандартные слова]] | | [[Категория:Описание бета-версии Каллисто]] |
| [[Категория:1994 CORE EXT]]
| |
| [[Категория:2012 CORE EXT]]
| |