!!
puzzles
%. 3 |= a=@ ?~ a (add a 1) $(a (dec a))

the halt

glossary

%. calls a gate with the argument first and the gate second - the reverse of %-.

%.(8 dec) is 7, the same as %-(dec 8).

|= 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=@.

?~ branches on whether a value is ~ (null): first branch if it is, second if not.

=/(a=(unit @) ~ ?~(a 0 u.a)) is 0.

%: 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)

add sums two atoms.

(add 2 3) is 5.

%= resolves a wing with some faces changed.

=/(a [x=1 y=2] a(x 9)) is [x=9 y=2].

irregular forms:

a(x 9) is %=(a x 9)

$(a b) restarts a loop with a changed to b

dec is decrement: one less than an atom.

(dec 8) is 7.