C'è un meccanismo implicito di composizione di funzione.
Una funzione v può prendere 1 o 2 argomenti:
v y
x v y
Date tre funzioni v u w
(v u w) y <-> (v y) u (w y)
x (v u w) y <-> (x v y) u (x w y)
una serie di funzioni
f g u v w
Viene interpretata come
f g (u v w)
E quindi ci si può rifare alle regole di cui sopra.
Ci sono un altro paio di regole di composizione ma non sono utili alla comprensione del codice sopra.
[: serve alla composizione di funzione com'è nella matematica
([: u v) y <-> u (v y)
Un modo equivalente è usare la congiunzione @:
(u@:v) y <-> u (v y)
La valutazione procede da destra a sinistra, quindi un altro modo per comporre è
u v y
Una serie di funzioni
f g u v w
Viene interpretata come
f g (u v w)
E quindi si procede con le regole di composizione di cui sopra.
Ci sono un altro paio di regole, ma non sono utili alla comprensione del codice.