F
- Transformable typeT
- Data type of Transformablepublic abstract class Unrestricted<T>
extends java.lang.Object
Free
for a more advanced type safe version
Inspiration and heavily influenced by https://github.com/xuwei-k/free-monad-java/blob/master/src/main/java/free/Free.java
Other influences incl :- http://www.slideshare.net/kenbot/running-free-with-the-monads
and https://github.com/scalaz/scalaz/blob/series/7.2.x/core/src/main/scala/scalaz/Free.scala
and https://github.com/typelevel/cats/blob/master/free/src/main/scala/cats/free/Free.scala
Org recover : https://github.com/aol/cyclops/blob/v4.0.1/cyclops-free-monad/src/main/java/com/aol/cyclops/monad/Free.javaModifier and Type | Class and Description |
---|---|
static class |
Unrestricted.Comprehensions
Created by johnmcclean on 11/05/2017.
|
Constructor and Description |
---|
Unrestricted() |
Modifier and Type | Method and Description |
---|---|
static <T> Unrestricted<T> |
done(T t) |
abstract <R> Unrestricted<R> |
flatMap(java.util.function.Function<? super T,? extends Unrestricted<? extends R>> f) |
<R1> Unrestricted<R1> |
forEach2(java.util.function.Function<? super T,Unrestricted<R1>> value2)
Perform a For Comprehension over a Unrestricted, accepting a generating function.
|
<T2,R1,R2> Unrestricted<R2> |
forEach3(java.util.function.Function<? super T,? extends Unrestricted<R1>> value2,
java.util.function.BiFunction<? super T,? super R1,? extends Unrestricted<R2>> value3)
Perform a For Comprehension over a Unrestricted, accepting 2 generating function.
|
<T2,T3,R1,R2,R3> |
forEach4(java.util.function.Function<? super T,? extends Unrestricted<R1>> value2,
java.util.function.BiFunction<? super T,? super R1,? extends Unrestricted<R2>> value3,
Fn3<? super T,? super R1,? super R2,? extends Unrestricted<R3>> value4)
Perform a For Comprehension over a Unrestricted, accepting 3 generating function.
|
T |
go(java.util.function.Function<? super Transformable<Unrestricted<T>>,? extends Unrestricted<T>> fn) |
static <T> Unrestricted<T> |
liftF(Transformable<T> functor) |
<R> Unrestricted<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
static <F,R1,R2,X1,X2> |
product(Unrestricted<R1> free1,
java.util.function.Function<Transformable<Unrestricted<R1>>,X1> decoder1,
Unrestricted<R2> free2,
java.util.function.Function<Transformable<Unrestricted<R2>>,X2> decoder2) |
Xor<Transformable<Unrestricted<T>>,T> |
resume() |
<R> Xor<R,T> |
resume(java.util.function.Function<Transformable<Unrestricted<T>>,R> decoder) |
static <B> Unrestricted<B> |
suspend(Transformable<Unrestricted<B>> b) |
abstract <R> R |
visit(java.util.function.Function<? super cyclops.control.Unrestricted.Pure<T>,? extends R> done,
java.util.function.Function<? super cyclops.control.Unrestricted.Suspend<T>,? extends R> suspend,
java.util.function.Function<? super cyclops.control.Unrestricted.FlatMapped<?,T>,? extends R> flatMapped) |
<B> Unrestricted<org.jooq.lambda.tuple.Tuple2<T,B>> |
zip(Unrestricted<B> b) |
<B,R> Unrestricted<R> |
zip(Unrestricted<B> b,
java.util.function.BiFunction<? super T,? super B,? extends R> zipper) |
<B,C> Unrestricted<org.jooq.lambda.tuple.Tuple3<T,B,C>> |
zip(Unrestricted<B> b,
Unrestricted<C> c) |
<B,C,R> Unrestricted<R> |
zip(Unrestricted<B> b,
Unrestricted<C> c,
Fn3<? super T,? super B,? super C,? extends R> fn) |
public <T2,T3,R1,R2,R3> Unrestricted<R3> forEach4(java.util.function.Function<? super T,? extends Unrestricted<R1>> value2, java.util.function.BiFunction<? super T,? super R1,? extends Unrestricted<R2>> value3, Fn3<? super T,? super R1,? super R2,? extends Unrestricted<R3>> value4)
value1
- top level Unrestrictedvalue2
- Nested Unrestrictedvalue3
- Nested Unrestrictedvalue4
- Nested Unrestrictedpublic <T2,R1,R2> Unrestricted<R2> forEach3(java.util.function.Function<? super T,? extends Unrestricted<R1>> value2, java.util.function.BiFunction<? super T,? super R1,? extends Unrestricted<R2>> value3)
value1
- top level Unrestrictedvalue2
- Nested Unrestrictedvalue3
- Nested Unrestrictedpublic <R1> Unrestricted<R1> forEach2(java.util.function.Function<? super T,Unrestricted<R1>> value2)
value1
- top level Unrestrictedvalue2
- Nested Unrestrictedpublic static <T> Unrestricted<T> liftF(Transformable<T> functor)
public static <T> Unrestricted<T> done(T t)
public static <B> Unrestricted<B> suspend(Transformable<Unrestricted<B>> b)
public final T go(java.util.function.Function<? super Transformable<Unrestricted<T>>,? extends Unrestricted<T>> fn)
public abstract <R> R visit(java.util.function.Function<? super cyclops.control.Unrestricted.Pure<T>,? extends R> done, java.util.function.Function<? super cyclops.control.Unrestricted.Suspend<T>,? extends R> suspend, java.util.function.Function<? super cyclops.control.Unrestricted.FlatMapped<?,T>,? extends R> flatMapped)
public abstract <R> Unrestricted<R> flatMap(java.util.function.Function<? super T,? extends Unrestricted<? extends R>> f)
public final <R> Xor<R,T> resume(java.util.function.Function<Transformable<Unrestricted<T>>,R> decoder)
public <B> Unrestricted<org.jooq.lambda.tuple.Tuple2<T,B>> zip(Unrestricted<B> b)
public <B,R> Unrestricted<R> zip(Unrestricted<B> b, java.util.function.BiFunction<? super T,? super B,? extends R> zipper)
public <B,C> Unrestricted<org.jooq.lambda.tuple.Tuple3<T,B,C>> zip(Unrestricted<B> b, Unrestricted<C> c)
public <B,C,R> Unrestricted<R> zip(Unrestricted<B> b, Unrestricted<C> c, Fn3<? super T,? super B,? super C,? extends R> fn)
public static final <F,R1,R2,X1,X2> org.jooq.lambda.tuple.Tuple2<Xor<X1,R1>,Xor<X2,R2>> product(Unrestricted<R1> free1, java.util.function.Function<Transformable<Unrestricted<R1>>,X1> decoder1, Unrestricted<R2> free2, java.util.function.Function<Transformable<Unrestricted<R2>>,X2> decoder2)
public final Xor<Transformable<Unrestricted<T>>,T> resume()
public final <R> Unrestricted<R> map(java.util.function.Function<? super T,? extends R> mapper)