PRIMITIVES
signature
The PRIMITIVES
signature provides a few “primitive”
operations for parallel evalution.
val par : (unit → α) * (unit → β) → (α * β)
val par3 : (unit → α) * (unit → β) * (unit → γ) → (α * β * γ)
val parTab : int * (int → α) → (int → α)
val par :
(unit → α) * (unit → β) → (α * β)
(par (f, g))
evaluates $f$ and $g$ in parallel, and
is logically equivalent to $(f(), g())$.
val par3 :
(unit → α) * (unit → β) * (unit → γ) → (α * β * γ)
(par3 (f, g, h))
evaluates $f$, $g$, and $h$ in parallel and
is logically equivalent to $(f(), g(), h())$.
val parTab :
int * (int → α) → (int → α)
(parTab (n, f))
evaluates $f(i)$ for every $0 \leq i < n$
in parallel, and is logically equivalent to $f$.