Sat Oct 10 13:42:52 CEST 2009

spread & cleave

Or Factor and dataflow intent instead of stack shuffling[2][3].  It
looks like I've missed a lot of good stuff recently[1][4] (Betweem the
noise look at Nowak's replies and related posts).

Essentially: `cleave' takes an argument and passes it to a sequence of
quotations (a fan-out), and `spread' will apply a list of functions to
elements on the stack (zipping like an inner product).

Moral of the story: Stack languages are ``too sequential'' (as are
monads), and expressing any kind of parallellism without _state
isolation_ leads to problems.  The `cleave' and `spread' combinators
are not parallel because they thread the stack through the iteration.

[1] http://tunes.org/~iepos/joy.html
[2] http://docs.factorcode.org/content/word-cleave,combinators.html
[3] http://docs.factorcode.org/content/word-spread,combinators.html
[4] http://tech.groups.yahoo.com/group/concatenative/message/4283