public abstract class P1<A>
extends java.lang.Object
Constructor and Description |
---|
P1() |
Modifier and Type | Method and Description |
---|---|
static <A> F<P1<A>,A> |
__1()
Returns a function that returns the first element of a product.
|
abstract A |
_1()
Access the first element of the product.
|
static <A,B> P1<B> |
apply(P1<A> ca,
P1<F<A,B>> cf)
Performs function application within a P1 (applicative functor pattern).
|
static <A,B> P1<B> |
bind(P1<A> a,
F<A,P1<B>> f)
Binds the given function to the value in a product-1 with a final join.
|
static <A,B,C> P1<C> |
bind(P1<A> ca,
P1<B> cb,
F<A,F<B,C>> f)
Binds the given function to the values in the given P1s with a final join.
|
<B> F<B,A> |
constant()
Returns a constant function that always uses this value.
|
static <A,B> F<A,P1<B>> |
curry(F<A,B> f)
Promotes the given function so that it returns its value in a P1.
|
static <A,B> F<P1<A>,P1<B>> |
fmap(F<A,B> f)
Promote any function to a transformation between P1s.
|
static <A> P1<A> |
join(P1<P1<A>> a)
Joins a P1 of a P1 with a bind operation.
|
static <A,B,C> F<P1<A>,F<P1<B>,P1<C>>> |
liftM2(F<A,F<B,C>> f)
Promotes a function of arity-2 to a function on P1s.
|
<X> P1<X> |
map(F<A,X> f)
Map the element of the product.
|
P1<A> |
memo()
Provides a memoising P1 that remembers its value.
|
static <A> P1<Array<A>> |
sequence(Array<P1<A>> as)
Turns an array of P1s into a single P1 of an array.
|
static <A> P1<List<A>> |
sequence(List<P1<A>> as)
Turns a List of P1s into a single P1 of a List.
|
static <A> P1<Stream<A>> |
sequence(Stream<P1<A>> as)
Turns a stream of P1s into a single P1 of a stream.
|
static <A> F<List<P1<A>>,P1<List<A>>> |
sequenceList()
A first-class version of the sequence method for lists of P1s.
|
public abstract A _1()
public final <X> P1<X> map(F<A,X> f)
f
- The function to map with.public static <A> F<P1<A>,A> __1()
public static <A,B> F<P1<A>,P1<B>> fmap(F<A,B> f)
f
- A function to promote to a transformation between P1s.public static <A,B> P1<B> bind(P1<A> a, F<A,P1<B>> f)
a
- A value in a product-1 to which to apply a function.f
- A function to apply to the value in a product-1.public static <A,B> F<A,P1<B>> curry(F<A,B> f)
f
- A function to have its result wrapped in a P1.public static <A,B> P1<B> apply(P1<A> ca, P1<F<A,B>> cf)
ca
- The P1 to which to apply a function.cf
- The P1 function to apply.public static <A,B,C> P1<C> bind(P1<A> ca, P1<B> cb, F<A,F<B,C>> f)
ca
- A given P1 to bind the given function with.cb
- A given P1 to bind the given function with.f
- The function to apply to the values in the given P1s.public static <A> P1<A> join(P1<P1<A>> a)
a
- The P1 of a P1 to join.public static <A,B,C> F<P1<A>,F<P1<B>,P1<C>>> liftM2(F<A,F<B,C>> f)
f
- The function to promote.public static <A> P1<List<A>> sequence(List<P1<A>> as)
as
- The list of P1s to transform.public static <A> F<List<P1<A>>,P1<List<A>>> sequenceList()
public static <A> P1<Stream<A>> sequence(Stream<P1<A>> as)
as
- The stream of P1s to transform.public static <A> P1<Array<A>> sequence(Array<P1<A>> as)
as
- The array of P1s to transform.public final P1<A> memo()