or ... and

В отличие от арифметических операций (или операторов?), логические операторы (или операции?) отдельно не классифицируются и, как правило, автором описываюся в категории функций контроля потоком. Термин “поток” он употребляет, хотя в контексте описания процессов, в документации замечает, что потоки, в принципе, не нужны и процессов с “корутинами“ достаточно. Однако тема … но здесь пока о логических операцих … без отрицания (операции негации, инверсии) … вообще, к “алгебре логики“ стоит позже вернуться как самостоятельной концепции. Все-таки, это база, на которой строятся все другие вычислителные процессы, вплоть до хранения, а не только “примитивные” арифметические операции, функции и процедуры. Кстати … и об этом тоже потом.
or - логическое “или”. Выражения any
оцениваются слева направо. Если встречается не-NIL
, оно немедленно возвращается. Иначе возвращается результат последнего выражения.
(or 'any ..) -> any
or/2 - предикат Pilog, который принимает произвольное количество предложений, и добивается успеха, если один из них может быть доказан (вычислен).
: (?
(or
((equal 3 @X) (equal @X 4))
((equal 7 @X) (equal @X 7)) ) )
@X=7
-> NIL
nor - логическое NOR. Выражения any
оцениваются слева направо. Если встречается не-NIL
, возвращается немедленно NIL. Иначе возвращается T. (nor ..) эквивалентен (not (or ..))
.
(nor 'any ..) -> flg
x| - возвращает битовое XOR всех num
аргументов. Когда один из аргументов оценивается в NIL
, он немедленно возвращается.
(x| 'num ..) -> num
xor - возвращает T
, если один из аргументов оценивается в не-NIL
.
(xor 'any 'any) -> flg
and - логическое “и”. Выражения any
оцениваются слева направо. Если встречается NIL
, NIL
немедленно возвращается. Иначе возвращается результат последнего выражения.
(and 'any ..) -> any
nand - логическое NAND. Выражения any
оцениваются слева направо. Если NIL
встречается, T
возвращается немедленно. Иначе возвращается NIL
. (nand ..)
эквивалентен (not (and ..))
.
(nand 'any ..) -> flg
Subscribe to my newsletter
Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Sergey Shishkin
Sergey Shishkin
Всегда чему-то учусь!