Table of Contents
Hodnoty typu op!
jsou infixové funkce (operátory pro dva argumenty), vytvořené z existujících prefixových funkcí typu native!
, action!
, function!
nebo routine!
.
Funkce typu op!
mají při vyhodnocení přednost před dalšími typy funkcí a před hodnotami typu set-word!
.
Typ op!
je člen typesetů any-function!
a default!
Operátory typu op! lze vytvořit při běhu programu pomocí konstruktoru make
.
<op> ::= make op! <prefix-function>
Příklady
Logické operátory or
a and
.
>> ||: make op! func [a b][any [a b]] ; return the first value that is true
== make op! [[a b]]
>> 1 || 2
== 1
>> false || 2
== 2
>> &&: make op! func [a b][all [a b]] ; if all values are true, return the last value; else return none
== make op! [[a b]]
>> 1 && 2
== 2
>> false && 2
== none
Hodnoty typu op! lze porovnávat z hlediska stejnosti a rovnosti pomocí dotazů same?
, ==
, equal?
, strict-equal?
, not-equal?
, <>
.
K ověření zda zda posuzovaná hodnota je typu op!
použijeme dotaz op?
.
>> op? :&&
== true
Typ hodnoty zjistíme dotazem type?
.
>> type? :||
== op!