Chains

Chains allow multiple expressions to be appended together.

Simple chains

A chain is written as a series of expressions delimited by arrows ->. The final expression determines the value of the chain as a whole.

-- This entire chain evaluates to 8, the result of the final expression.
2 + 5 -> cos(2) -> max(2, 4, 6, 8)

Forward passing

Wolf stores the result of the previous expression in that. This allows previous expressions to be used in the next expression.

-- `that` is replaced with 4, so this whole chain evaluates to 14.
2 + 2 -> that + 10

Automatic chaining

If that is being passed as .0 to a function, the fat arrow => can be used to omit it.

-- Manual:
(2, 5) -> max(that) -> log2(that) -> ceil(that) -> exp2(that)

-- Automatic:
(2, 5) => max() => log2() => ceil() => exp2()

You may mix thin arrows and fat arrows in the same chain.

(2, 5) => max -> 10 / that