Functionally pipe f has type
'a1 -> 'a2
...
'a(n-1) -> 'an
Given the input stream :xn:...:x1:x0: the n-stage pipe f1 ||| f2 ||| ... ||| fn computes the output stream :fn(...(f2(f1 xn))...):...:fn(...(f2(f1 x1))...):fn(...(f2(f1 x0))...)
In terms of (parallel) processes, a sequence of data appearing onto the input stream of a pipe is submitted to the first pipeline stage. The output of this stage is submitted to the second stage and so on and so on until the output of the (n-1) stage is submitted to the last stage. Eventually, the last stage delivers its own output onto the pipeline output channel. The resulting process network looks like the following:
Back to the skeleton set page.