SIGN
SIGN (знак) — стандартное слово Каллисто.
SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно.
Вводит знак "минус" в выходной буфер PAD, если n<0
Ввод слова SIGN[править]
В режиме ЛАТ последовательно нажмите четыре клавиши 1 7 БП 4
SIGN в стандарте ANS Forth[править]
6.1.2210 SIGN CORE ( n -- ) Если n - отрицательное, добавляет знак "минус" в начало выходной строки отображаемого числа. Неопределенная ситуация существует, если SIGN выполняется вне <# #> ограничивающих преобразование числа.
История[править]
Начиная с Форта-79, SIGN берёт свой аргумент с вершины стека. Это означает, что обращение к SIGN в Каллисто обычно выглядит так: ↔ SIGN
SIGN в предыдущем стандарте Forth-83 (англ.)[править]
SIGN n -- 83 If n is negative, an ASCII "-" (minus sign) is appended to the pictured numeric output string. Typically used between <# and #> .
SIGN в стандарте Forth-79 (англ.)[править]
SIGN n -- C,140 Insert the ASCII "-" (minus sign) into the pictured numeric output string, if n is negative.
SIGN в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
SIGN n d --- d L0 Stores an ascii "-" sign just before a converted numeric output string in the text output buffer when n is negative. n is discarded but double number d is maintained. Must be used between <# and #>.
Реализация[править]
В соответствии со стандартом Форт−79 и последующими, слово SIGN берёт свой аргумент с вершины стека. Обычно SIGN используется непосредственно после U#S
3764 ;#SIGN 3765 ; SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно. 3766 ; Ввести знак "минус" в выходной буфер PAD, если x<0 3767 ; Обычно используется непосредственно после U#S 3768 LSIGN: .DB 4 3769 .TEXT "SIGN" 3770 .DW LEFDIGS 3771 SIGN: .DW CALL, ZLESS, ZBRAN,SIG, LITB 3772 .DB 45 3773 .DW HOLD 3774 SIG: .DW EXIT
Реализация из SP-Forth 4.20:
: SIGN ( n -- ) \ 94 \ Если n отрицательно, добавить в строку форматного преобразования \ чисел минус. \ Исключительная ситуация возникает, если использовать SIGN \ вне <# и #>, ограничивающивающих преобразование чисел. 0< IF [CHAR] - HOLD THEN ;
Советская реализация[править]
Определение слова SIGN совпадает у Юрия Семёнова (стр. 100) и Баранова-Ноздрунова (стр. 37):
: SIGN ( A ---> ) 0< IF '-' HOLD THEN ;
Определение слова SIGN в ядре ФОРТ-ЕС:
SIGN N-> ДОБАВИТЬ В ФОРМАТНУЮ СТРОКУ ЗНАК 37 МИНУС, ЕСЛИ ЧИСЛО N ОТРИЦАТЕЛЬНО Экран номер 37 ( 31.03.86 PAD HOLD ALPHA <# #> # #S SIGN ) : SIGN ( N->) 0< IF C" - HOLD THEN ;
Определение слова SIGN в FORTH ИТЭФ:
HEAD 204Q,'SIG',316Q,SIGN,$COL ; SIGN DW ROT,ZLESS,ZBRAN,SIG-$,LIT,55Q,HOLD SIG: DW SEMI
Ссылки[править]
- Исходный текст слова SIGN в Каллисто Классик 1.0
- Слово SIGN в стандарте ANS Forth (англ.)
- Слово SIGN в черновике Forth 200x (англ.)
- ЧИСЛО ТИПОВ ЧИСЕЛ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- A Number of Kinds of Numbers в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |