Copyright 2008 - 2009 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg

This software is released under an open source BSD licence.

fj.control.parallel
Class Callables

java.lang.Object
  extended by fj.control.parallel.Callables

public final class Callables
extends Object

Monadic functions and conversion methods for java.util.concurrent.Callable.


Method Summary
static
<A,B> Callable<B>
apply(Callable<A> ca, Callable<F<A,B>> cf)
          Performs function application within a callable (applicative functor pattern).
static
<A,B> F<F<A,B>,F<A,Callable<B>>>
arrow()
          Provides a transformation from a function to a Callable-valued function that is equivalent to it.
static
<A,B,C> Callable<C>
bind(Callable<A> ca, Callable<B> cb, F<A,F<B,C>> f)
          Binds the given function to the values in the given callables with a final join.
static
<A,B> Callable<B>
bind(Callable<A> a, F<A,Callable<B>> f)
          Binds the given function to the value in a Callable with a final join.
static
<A> F<A,Callable<A>>
callable()
          Provides a transformation from a value to a Callable that completely preserves that value.
static
<A> Callable<A>
callable(A a)
          Returns a callable that completely preserves the argument.
static
<A> Callable<A>
callable(Exception e)
          Returns a callable that throws the given exception.
static
<A,B> F<A,Callable<B>>
callable(F<A,B> f)
          Wraps a given function's return value in a Callable.
static
<A> F<Callable<A>,P1<Either<Exception,A>>>
either()
          Returns a transformation from a Callable to an Either.
static
<A> P1<Either<Exception,A>>
either(Callable<A> a)
          Turns the given Callable into either an exception or the value in the Callable.
static
<A,B> F<Callable<A>,Callable<B>>
fmap(F<A,B> f)
          Lifts any function to a function on Callables.
static
<A> F<P1<Either<Exception,A>>,Callable<A>>
fromEither()
          Returns a transformation from an Either to a Callable.
static
<A> Callable<A>
fromEither(P1<Either<Exception,A>> e)
          Turns a given Either value into the equivalent Callable.
static
<A> F<P1<Option<A>>,Callable<A>>
fromOption()
          Returns a transformation from an optional value to a Callable
static
<A> Callable<A>
fromOption(P1<Option<A>> o)
          Turns an optional value into a Callable.
static
<A> Callable<A>
join(Callable<Callable<A>> a)
          Joins a Callable of a Callable with a bind operation.
static
<A,B,C> F<Callable<A>,F<Callable<B>,Callable<C>>>
liftM2(F<A,F<B,C>> f)
          Promotes a function of arity-2 to a function on callables.
static
<A> F<Callable<A>,Callable<A>>
normalise()
          A first-class version of the normalise function.
static
<A> Callable<A>
normalise(Callable<A> a)
          Normalises the given Callable by calling it and wrapping the result in a new Callable.
static
<A> F<Callable<A>,P1<Option<A>>>
option()
          Returns a transformation from a Callable to an optional value.
static
<A> P1<Option<A>>
option(Callable<A> a)
          Turns the given Callable into an optional value.
static
<A> F<List<Callable<A>>,Callable<List<A>>>
sequence_()
          A first-class version of the sequence method.
static
<A> Callable<List<A>>
sequence(List<Callable<A>> as)
          Turns a List of Callables into a single Callable of a List.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

callable

public static <A> Callable<A> callable(A a)
Returns a callable that completely preserves the argument. The unit function for Callables.

Parameters:
a - A value to preserve in a Callable
Returns:
A Callable that yields the argument when called.

callable

public static <A> Callable<A> callable(Exception e)
Returns a callable that throws the given exception. The unit function for Callables.

Parameters:
e - The exception to throw when the Callable is called.
Returns:
A callable that always throws the given exception.

callable

public static <A> F<A,Callable<A>> callable()
Provides a transformation from a value to a Callable that completely preserves that value.

Returns:
A function from a value to a Callable that completely preserves that value.

callable

public static <A,B> F<A,Callable<B>> callable(F<A,B> f)
Wraps a given function's return value in a Callable. The Kleisli arrow for Callables.

Parameters:
f - The function whose return value to wrap in a Callable.
Returns:
The equivalent function whose return value is wrapped in a Callable.

arrow

public static <A,B> F<F<A,B>,F<A,Callable<B>>> arrow()
Provides a transformation from a function to a Callable-valued function that is equivalent to it. The first-class Kleisli arrow for Callables.

Returns:
A transformation from a function to the equivalent Callable-valued function.

bind

public static <A,B> Callable<B> bind(Callable<A> a,
                                     F<A,Callable<B>> f)
Binds the given function to the value in a Callable with a final join.

Parameters:
a - A value in a Callable to which to apply a function.
f - A function to apply to the value in a Callable.
Returns:
The result of applying the function in the second argument to the value of the Callable in the first.

fmap

public static <A,B> F<Callable<A>,Callable<B>> fmap(F<A,B> f)
Lifts any function to a function on Callables.

Parameters:
f - A function to lift to a function on Callables.
Returns:
That function lifted to a function on Callables.

apply

public static <A,B> Callable<B> apply(Callable<A> ca,
                                      Callable<F<A,B>> cf)
Performs function application within a callable (applicative functor pattern).

Parameters:
ca - The callable to which to apply a function.
cf - The callable function to apply.
Returns:
A new callable after applying the given callable function to the first argument.

bind

public static <A,B,C> Callable<C> bind(Callable<A> ca,
                                       Callable<B> cb,
                                       F<A,F<B,C>> f)
Binds the given function to the values in the given callables with a final join.

Parameters:
ca - A given callable to bind the given function with.
cb - A given callable to bind the given function with.
f - The function to apply to the values in the given callables.
Returns:
A new callable after performing the map, then final join.

join

public static <A> Callable<A> join(Callable<Callable<A>> a)
Joins a Callable of a Callable with a bind operation.

Parameters:
a - The Callable of a Callable to join.
Returns:
A new Callable that is the join of the given Callable.

liftM2

public static <A,B,C> F<Callable<A>,F<Callable<B>,Callable<C>>> liftM2(F<A,F<B,C>> f)
Promotes a function of arity-2 to a function on callables.

Parameters:
f - The function to promote.
Returns:
A function of arity-2 promoted to map over callables.

sequence

public static <A> Callable<List<A>> sequence(List<Callable<A>> as)
Turns a List of Callables into a single Callable of a List.

Parameters:
as - The list of callables to transform.
Returns:
A single callable for the given List.

sequence_

public static <A> F<List<Callable<A>>,Callable<List<A>>> sequence_()
A first-class version of the sequence method.

Returns:
A function from a List of Callables to a single Callable of a List.

option

public static <A> P1<Option<A>> option(Callable<A> a)
Turns the given Callable into an optional value.

Parameters:
a - The callable to convert to an optional value.
Returns:
An optional value that yields the value in the Callable, or None if the Callable fails.

option

public static <A> F<Callable<A>,P1<Option<A>>> option()
Returns a transformation from a Callable to an optional value.

Returns:
a function that turns a Callable into an optional value.

either

public static <A> P1<Either<Exception,A>> either(Callable<A> a)
Turns the given Callable into either an exception or the value in the Callable.

Parameters:
a - The callable to convert to an Either value.
Returns:
Either the value in the given Callable, or the Exception with which the Callable fails.

either

public static <A> F<Callable<A>,P1<Either<Exception,A>>> either()
Returns a transformation from a Callable to an Either.

Returns:
a function that turns a Callable into an Either.

fromEither

public static <A> Callable<A> fromEither(P1<Either<Exception,A>> e)
Turns a given Either value into the equivalent Callable.

Parameters:
e - Either an exception or a value to wrap in a Callable
Returns:
A Callable equivalent to the given Either value.

fromEither

public static <A> F<P1<Either<Exception,A>>,Callable<A>> fromEither()
Returns a transformation from an Either to a Callable.

Returns:
a function that turns an Either into a Callable.

fromOption

public static <A> Callable<A> fromOption(P1<Option<A>> o)
Turns an optional value into a Callable.

Parameters:
o - An optional value to turn into a Callable.
Returns:
A Callable that yields some value or throws an exception in the case of no value.

fromOption

public static <A> F<P1<Option<A>>,Callable<A>> fromOption()
Returns a transformation from an optional value to a Callable

Returns:
A function that turns an optional value into a Callable that yields some value or throws an exception in the case of no value.

normalise

public static <A> Callable<A> normalise(Callable<A> a)
Normalises the given Callable by calling it and wrapping the result in a new Callable. If the given Callable throws an Exception, the resulting Callable will throw that same Exception.

Parameters:
a - The callable to evaluate.
Returns:
A normalised callable that just returns the result of calling the given callable.

normalise

public static <A> F<Callable<A>,Callable<A>> normalise()
A first-class version of the normalise function.

Returns:
A function that normalises the given Callable by calling it and wrapping the result in a new Callable.

Copyright 2008 - 2009 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg

This software is released under an open source BSD licence.