~(uni in a) merges two sets.
a value in both still counts once.
=/ pins a named value (a face) into the subject for the lines below it.
name=value optionally declares the type.
=/(a 3 (add a a)) is 6.
%: 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)
silt builds a set from a list of values.
~(wyt in (silt `(list @)`~[1 2 2 3])) is 3.
^- 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)
~() pulls an arm from a door, setting the door's sample: ~(arm door value).
~(wyt by (malt `(list [@ @])`~[[1 2] [3 4]])) is 2.
~(wyt in s) counts the values in a set.
in is the door of set operations: ~(has in s), ~(put in s), ~(uni in a), ~(wyt in s), and so on.
(~(has in (silt `(list @)`~[1 2 3])) 2) is %.y.
~(uni in a) unions two sets into one.