0=: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 1: Строка 1:
'''0=''' — стандартное слово [[Каллисто]].
'''0=''' (нулю равно) — стандартное слово [[Каллисто]]. Проверка на равенство нулю.
0=            ( x -- f )


Сравнивает x с нулём и засылает в стек флаг «истинно» (f=-1), если x=0 и флаг «ложно» (f=0), если x≠0.
== Детали реализации ==
Если на стеке лежит логическое значение (флаг), слово 0= меняет его противоположное. Флаг «истина» (x=-1 и любое ненулевое значение) превращается во флаг «ложно» (f=0). Флаг «ложно» (x=0) превратится во флаг «истина» (f=-1)
В отличии от [[INVERT]], слово 0= превращает во флаг «ложь» не только -1, но и любое ненулевое значение. Применив 0= дважды, можно «нормализовать» флаг, превратив любое ненулевое значение в -1.


== 0= в стандарте ANS Forth ==
== 0= в стандарте ANS Forth ==
Строка 6: Строка 13:
             ( x -- flag )
             ( x -- flag )
             flag - true, если и только если x - равно нулю.
             flag - true, если и только если x - равно нулю.


== F0= в стандарте ANS Forth ==
== F0= в стандарте ANS Forth ==
Строка 12: Строка 18:
             ( -- flag ) ( F: r -- ) or ( r -- flag )
             ( -- flag ) ( F: r -- ) or ( r -- flag )
             flag - true, если и только если r - равно нулю.
             flag - true, если и только если r - равно нулю.


== 0= в предыдущем стандарте Forth-83 (англ.) ==
== 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= в стандарте 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= в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
Строка 28: Строка 31:
         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.


== История ==
== История ==
Строка 47: Строка 49:
[[Категория:Одноместные операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Операции сравнения Каллисто]]
[[Категория:Операции сравнения Каллисто]]
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:Описание бета-версии Каллисто]]

Версия от 21:55, 25 октября 2015

0= (нулю равно) — стандартное слово Каллисто. Проверка на равенство нулю.

0=             ( x -- f )

Сравнивает x с нулём и засылает в стек флаг «истинно» (f=-1), если x=0 и флаг «ложно» (f=0), если x≠0.

Детали реализации

Если на стеке лежит логическое значение (флаг), слово 0= меняет его противоположное. Флаг «истина» (x=-1 и любое ненулевое значение) превращается во флаг «ложно» (f=0). Флаг «ложно» (x=0) превратится во флаг «истина» (f=-1)

В отличии от INVERT, слово 0= превращает во флаг «ложь» не только -1, но и любое ненулевое значение. Применив 0= дважды, можно «нормализовать» флаг, превратив любое ненулевое значение в -1.

0= в стандарте ANS Forth

6.1.0270   0=                             "zero-equals"                    CORE
           ( x -- flag )
           flag - true, если и только если x - равно нулю.

F0= в стандарте ANS Forth

12.6.1.1450   F0=                       "f-zero-equals"                FLOATING
           ( -- flag ) ( F: r -- ) or ( r -- flag )
           flag - true, если и только если r - равно нулю.

0= в предыдущем стандарте Forth-83 (англ.)

     0=           w -- flag                     83       "zero-equals"
          flag is true if w is zero.

0= в стандарте Forth-79 (англ.)

0=             n -- flag                     180      "zero-equals"
    True if n is zero.

0= в fig-FORTH Release 1 glossary, май 1979 (англ.)

0=            n  ---  f                        L0
       Leave a true flag is the number is equal to zero, otherwise leave a
       false flag.

История

В Форте-79 слово NOT было определено, как синоним 0= и это привело к тому, что от слова NOT в Каллисто пришлось отказаться.

Если программы переносятся с fig-Форта на Каллисто, их слово NOT должно заменяться на 0=

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.