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 []

This works with

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

[2, 5] => max -> 10 / that