public static class PersistentSetX.Instances
extends java.lang.Object
| Constructor and Description |
|---|
Instances() |
| Modifier and Type | Method and Description |
|---|---|
static InstanceDefinitions<Witness.persistentSetX> |
definitions() |
static <T,R> Foldable<Witness.persistentSetX> |
foldable()
int sum = Sets.foldable()
.foldLeft(0, (a,b)->a+b, PersistentSetX.widen(Arrays.asSet(1,2,3,4)));
//10
|
static <T,R> Functor<Witness.persistentSetX> |
functor()
Transform a persistentSetX, mulitplying every element by 2
|
static <T,R> Monad<Witness.persistentSetX> |
monad()
import static com.aol.cyclops2.hkt.jdk.PersistentSetX.widen;
PersistentSetX<Integer> persistentSetX = Sets.monad()
.flatMap(i->widen(PersistentSetX.range(0,i)), widen(Arrays.asSet(1,2,3)))
.convert(PersistentSetX::narrowK3);
|
static <T> MonadPlus<Witness.persistentSetX> |
monadPlus()
PersistentSetX<Integer> persistentSetX = Sets.<Integer>monadPlus()
.plus(PersistentSetX.widen(Arrays.asSet()), PersistentSetX.widen(Arrays.asSet(10)))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet(10))
|
static <T> MonadPlus<Witness.persistentSetX> |
monadPlus(Monoid<PersistentSetX<T>> m)
Monoid<PersistentSetX<Integer>> m = Monoid.of(PersistentSetX.widen(Arrays.asSet()), (a,b)->a.isEmpty() ? b : a);
PersistentSetX<Integer> persistentSetX = Sets.<Integer>monadPlus(m)
.plus(PersistentSetX.widen(Arrays.asSet(5)), PersistentSetX.widen(Arrays.asSet(10)))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet(5))
|
static <T,R> MonadRec<Witness.persistentSetX> |
monadRec() |
static <T,R> MonadZero<Witness.persistentSetX> |
monadZero()
PersistentSetX<String> persistentSetX = Sets.unit()
.unit("hello")
.applyHKT(h->Sets.monadZero().filter((String t)->t.startsWith("he"), h))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet("hello"));
|
static <T> PersistentSetX<T> |
narrow(Higher<Witness.persistentSetX,T> completableSet)
Convert the HigherKindedType definition for a Set into
|
static <T> PersistentSetX<T> |
narrowK(Higher<Witness.persistentSetX,T> future)
Convert the raw Higher Kinded Type for SetType types into the SetType type definition class
|
static <C2,T> Traverse<Witness.persistentSetX> |
traverse() |
static Unfoldable<Witness.persistentSetX> |
unfoldable() |
static <T> Pure<Witness.persistentSetX> |
unit()
PersistentSetX<String> persistentSetX = Sets.unit()
.unit("hello")
.convert(PersistentSetX::narrowK3);
//Arrays.asSet("hello"))
|
static <C2,T> Higher<C2,Higher<Witness.persistentSetX,T>> |
widen2(Higher<C2,PersistentSetX<T>> flux)
Widen a SetType nest inside another HKT encoded type
|
static <T,R> Applicative<Witness.persistentSetX> |
zippingApplicative()
import static com.aol.cyclops2.hkt.jdk.PersistentSetX.widen;
import static com.aol.cyclops2.util.function.Lambda.l1;
import static java.util.Arrays.asSet;
Sets.zippingApplicative()
.ap(widen(asSet(l1(this::multiplyByTwo))),widen(asSet(1,2,3)));
//[2,4,6]
|
public static InstanceDefinitions<Witness.persistentSetX> definitions()
public static Unfoldable<Witness.persistentSetX> unfoldable()
public static <T,R> Functor<Witness.persistentSetX> functor()
PersistentSetX<Integer> persistentSetX = Sets.functor().map(i->i*2, PersistentSetX.widen(Arrays.asSet(1,2,3));
//[2,4,6]
An example fluent api working with Sets
PersistentSetX<Integer> persistentSetX = Sets.unit()
.unit("hello")
.applyHKT(h->Sets.functor().map((String v) ->v.length(), h))
.convert(PersistentSetX::narrowK3);
public static <T> Pure<Witness.persistentSetX> unit()
PersistentSetX<String> persistentSetX = Sets.unit()
.unit("hello")
.convert(PersistentSetX::narrowK3);
//Arrays.asSet("hello"))
public static <T,R> Applicative<Witness.persistentSetX> zippingApplicative()
import static com.aol.cyclops2.hkt.jdk.PersistentSetX.widen;
import static com.aol.cyclops2.util.function.Lambda.l1;
import static java.util.Arrays.asSet;
Sets.zippingApplicative()
.ap(widen(asSet(l1(this::multiplyByTwo))),widen(asSet(1,2,3)));
//[2,4,6]
Example fluent API
PersistentSetX<Function<Integer,Integer>> persistentSetXFn =Sets.unit()
.unit(Lambda.l1((Integer i) ->i*2))
.convert(PersistentSetX::narrowK3);
PersistentSetX<Integer> persistentSetX = Sets.unit()
.unit("hello")
.applyHKT(h->Sets.functor().map((String v) ->v.length(), h))
.applyHKT(h->Sets.zippingApplicative().ap(persistentSetXFn, h))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet("hello".length()*2))
public static <T,R> Monad<Witness.persistentSetX> monad()
import static com.aol.cyclops2.hkt.jdk.PersistentSetX.widen;
PersistentSetX<Integer> persistentSetX = Sets.monad()
.flatMap(i->widen(PersistentSetX.range(0,i)), widen(Arrays.asSet(1,2,3)))
.convert(PersistentSetX::narrowK3);
Example fluent API
PersistentSetX<Integer> persistentSetX = Sets.unit()
.unit("hello")
.applyHKT(h->Sets.monad().flatMap((String v) ->Sets.unit().unit(v.length()), h))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet("hello".length())
public static <T,R> MonadRec<Witness.persistentSetX> monadRec()
public static <T,R> MonadZero<Witness.persistentSetX> monadZero()
PersistentSetX<String> persistentSetX = Sets.unit()
.unit("hello")
.applyHKT(h->Sets.monadZero().filter((String t)->t.startsWith("he"), h))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet("hello"));
public static <T> MonadPlus<Witness.persistentSetX> monadPlus()
PersistentSetX<Integer> persistentSetX = Sets.<Integer>monadPlus()
.plus(PersistentSetX.widen(Arrays.asSet()), PersistentSetX.widen(Arrays.asSet(10)))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet(10))
public static <T> MonadPlus<Witness.persistentSetX> monadPlus(Monoid<PersistentSetX<T>> m)
Monoid<PersistentSetX<Integer>> m = Monoid.of(PersistentSetX.widen(Arrays.asSet()), (a,b)->a.isEmpty() ? b : a);
PersistentSetX<Integer> persistentSetX = Sets.<Integer>monadPlus(m)
.plus(PersistentSetX.widen(Arrays.asSet(5)), PersistentSetX.widen(Arrays.asSet(10)))
.convert(PersistentSetX::narrowK3);
//Arrays.asSet(5))
m - Monoid to use for combining Setspublic static <C2,T> Traverse<Witness.persistentSetX> traverse()
public static <T,R> Foldable<Witness.persistentSetX> foldable()
int sum = Sets.foldable()
.foldLeft(0, (a,b)->a+b, PersistentSetX.widen(Arrays.asSet(1,2,3,4)));
//10
public static <C2,T> Higher<C2,Higher<Witness.persistentSetX,T>> widen2(Higher<C2,PersistentSetX<T>> flux)
flux - HTK encoded type containing a Set to widenpublic static <T> PersistentSetX<T> narrowK(Higher<Witness.persistentSetX,T> future)
future - HKT encoded persistentSetX into a SetTypepublic static <T> PersistentSetX<T> narrow(Higher<Witness.persistentSetX,T> completableSet)
Set - Type Constructor to convert back into narrowed type