avocado
package avocado
Type members
Classlikes
Value members
Concrete methods
Transforms the provided for-comprehension to it's parallel version. Example usage:
Transforms the provided for-comprehension to it's parallel version. Example usage:
ado {
for {
a <- doStuff1
b <- doStuff2(a)
c <- doStuff3
d <- doStuff4(a)
} yield combine(a, b, c, d)
}
The above code will be transformed to code essentially equivalent to:
for {
a <- doStuff1
(b, c, d) <- doStuff2(a).zip(doStuff3).zip(doStuff4(a))
} yield combine(a, b, c, d)
The transformed code will use the provided implicit avocado.AvocADO
instance for method calls such as map, flatMap and zip. Potential for
paralellizm is introduced in places where zip calls are used. So in order
to utilize this method in a sensible way, avocado.AvocADO.zip should
initialize parallel calls. Though this method should also be safe for
sequential operations.