|
Copyright 2008 - 2010 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg This software is released under an open source BSD licence. |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectfj.data.Either<A,B>
public abstract class Either<A,B>
The Either type represents a value of one of two possible types (a disjoint union).
The data constructors; Left and Right represent the two possible
values. The Either type is often used as an alternative to
scala.Option where Left represents failure (by convention) and
Right is akin to Some.
| Nested Class Summary | |
|---|---|
class |
Either.LeftProjection<A,B>
A left projection of an either value. |
class |
Either.RightProjection<A,B>
A right projection of an either value. |
| Method Summary | ||
|---|---|---|
|
either(F<A,X> left,
F<B,X> right)
The catamorphism for either. |
|
static
|
iif(boolean c,
P1<B> right,
P1<A> left)
If the condition satisfies, return the given A in left, otherwise, return the given B in right. |
|
abstract boolean |
isLeft()
Returns true if this either is a left, false otherwise. |
|
abstract boolean |
isRight()
Returns true if this either is a right, false otherwise. |
|
static
|
joinLeft(Either<Either<A,B>,B> e)
Joins an either through left. |
|
static
|
joinRight(Either<A,Either<A,B>> e)
Joins an either through right. |
|
static
|
left_()
A function that constructs a left value of either. |
|
Either.LeftProjection<A,B> |
left()
Projects this either as a left. |
|
static
|
left(A a)
Construct a left value of either. |
|
static
|
leftMap_()
|
|
static
|
lefts(List<Either<A,B>> es)
Returns all the left values in the given list. |
|
static
|
reduce(Either<A,A> e)
Takes an Either to its contained value within left or right. |
|
static
|
right_()
A function that constructs a right value of either. |
|
Either.RightProjection<A,B> |
right()
Projects this either as a right. |
|
static
|
right(B b)
Construct a right value of either. |
|
static
|
rightMap_()
|
|
static
|
rights(List<Either<A,B>> es)
Returns all the right values in the given list. |
|
static
|
sequenceLeft(List<Either<A,X>> a)
Sequences through the left side of the either monad with a list of values. |
|
static
|
sequenceRight(List<Either<X,B>> a)
Sequences through the right side of the either monad with a list of values. |
|
Either<B,A> |
swap()
If this is a left, then return the left value in right, or vice versa. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public Either.LeftProjection<A,B> left()
public Either.RightProjection<A,B> right()
public abstract boolean isLeft()
true if this either is a left, false otherwise.
true if this either is a left, false otherwise.public abstract boolean isRight()
true if this either is a right, false otherwise.
true if this either is a right, false otherwise.
public <X> X either(F<A,X> left,
F<B,X> right)
left - The function to call if this is left.right - The function to call if this is right.
public Either<B,A> swap()
public static <A,B> Either<A,B> left(A a)
a - The value underlying the either.
public static <A,B> F<A,Either<A,B>> left_()
public static <A,B> F<B,Either<A,B>> right_()
public static <A,B> Either<A,B> right(B b)
b - The value underlying the either.
public static <A,B,X> F<F<A,X>,F<Either<A,B>,Either<X,B>>> leftMap_()
public static <A,B,X> F<F<B,X>,F<Either<A,B>,Either<A,X>>> rightMap_()
public static <A,B> Either<A,B> joinLeft(Either<Either<A,B>,B> e)
e - The either of either to join.
public static <A,B> Either<A,B> joinRight(Either<A,Either<A,B>> e)
e - The either of either to join.
public static <A,X> Either<List<A>,X> sequenceLeft(List<Either<A,X>> a)
a - The list of values to sequence with the either monad.
public static <B,X> Either<X,List<B>> sequenceRight(List<Either<X,B>> a)
a - The list of values to sequence with the either monad.
public static <A> A reduce(Either<A,A> e)
Either to its contained value within left or right.
e - The either to reduce.
Either to its contained value within left or right.
public static <A,B> Either<A,B> iif(boolean c,
P1<B> right,
P1<A> left)
c - The condition to test.right - The right value to use if the condition satisfies.left - The left value to use if the condition does not satisfy.
public static <A,B> List<A> lefts(List<Either<A,B>> es)
es - The list of possible left values.
public static <A,B> List<B> rights(List<Either<A,B>> es)
es - The list of possible right values.
|
Copyright 2008 - 2010 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg This software is released under an open source BSD licence. |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||