levy is yes only when every element passes the gate.
%+ calls a gate that takes two arguments.
%+(add 2 3) is 5.
irregular forms:
(gate a b) is %+(gate a b)
levy is yes only when every element of a list passes the gate.
(levy `(list @)`~[2 4 6] |=(n=@ =(0 (mod n 2)))) is %.y.
^- casts a value to a named type: it checks the value fits and relabels it.
^-(@ 42) is 42.
irregular forms:
a leading backtick cast - the type in backticks, then the value - is ^-
list is the type of a null-terminated sequence.
(list @) is a list of atoms; the empty list is ~.
:~ makes a null-terminated list.
:~(1 2 3) is ~[1 2 3].
irregular forms:
~[a b c] is :~(a b c)
|= makes a gate: a function with one named sample, then a body.
the body runs with the sample bound.
call the gate to run it.
(|=(a=@ (add a 1)) 4) is 5.
$= wraps a mold with a face, naming the value it produces.
$=(x @) is the mold x=@.
.= tests two nouns for equality, giving a loobean.
.=(3 3) is %.y, and .=(3 4) is %.n.
irregular forms:
=(a b) is .=(a b)
%: calls a gate with several arguments, gathering them into one sample.
%:(add 2 3) is 5.
irregular forms:
(gate a b c) is %:(gate a b c)
mod is the remainder of a division.
(mod 17 5) is 2.