Cleave combinators
Factor handbook » The language » Combinators » Dataflow combinators

Prev:Preserving combinators
Next:Spread combinators


The cleave combinators apply multiple quotations to a single value or set of values.

Two quotations:
bi ( x p q -- )

2bi ( x y p q -- )

3bi ( x y z p q -- )


Three quotations:
tri ( x p q r -- )

2tri ( x y p q r -- )

3tri ( x y z p q r -- )


An array of quotations:
cleave ( x seq -- )

2cleave ( x y seq -- )

3cleave ( x y z seq -- )

4cleave ( w x y z seq -- )


Cleave combinators provide a more readable alternative to repeated applications of the keep combinators. The following example using keep:
[ 1 + ] keep [ 1 - ] keep 2 *

can be more clearly written using tri:
[ 1 + ] [ 1 - ] [ 2 * ] tri