Utility function - evaluate a
and catch and return any exceptions.
Create a Future
that will evaluate a
using the given ExecutorService
.
Create a Future
from an asynchronous computation, which takes the form
of a function with which we can register a callback.
Create a Future
from an asynchronous computation, which takes the form
of a function with which we can register a callback. This can be used
to translate from a callback-based API to a straightforward monadic
version. See Task.async
for a version that allows for asynchronous
exceptions.
Promote a non-strict value to a Task
, catching exceptions in
the process.
Promote a non-strict value to a Task
, catching exceptions in
the process. Note that since Task
is unmemoized, this will
recompute a
each time it is sequenced into a larger computation.
Memoize a
with a lazy value before calling this function if
memoization is desired.
A Task
which fails with the given Throwable
.
Returns a Future
that produces the same result as the given Future
,
but forks its evaluation off into a separate (logical) thread, using
the given ExecutorService
.
Returns a Future
that produces the same result as the given Future
,
but forks its evaluation off into a separate (logical) thread, using
the given ExecutorService
. Note that this forking is only described
by the returned Future
--nothing occurs until the Future
is run.
Convert a strict value to a Task
.
Convert a strict value to a Task
. Also see delay
.
Produce f
in the main trampolining loop, Future.step
, using a fresh
call stack.
Produce f
in the main trampolining loop, Future.step
, using a fresh
call stack. The standard trampolining primitive, useful for avoiding
stack overflows.