From HaskellWiki
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
The functions
and
have much in common.
They have the same signature and thus the same use patterns.
The function
let you start a computation in parallel
and
forces a computation to actually take place (avoiding
lazy evaluation).
par :: a -> b -> b
seq :: a -> b -> b
You could also define a function
which computes the arguments of a two-argument function
in parallel before feeding them to
.
par2 :: (a -> b -> c) -> (a -> b -> c)
par2 f x y = x `par` y `par` f x y
The function
is also universal, because you can define
in terms of
.
You can see, that
is the more basic combinator, because it scales to any number of arguments.
See also
Category: Parallel