public static class Fluxs.Instances
extends java.lang.Object
| Constructor and Description |
|---|
Instances() |
| Modifier and Type | Method and Description |
|---|---|
static InstanceDefinitions<ReactorWitness.flux> |
definitions() |
static <T> Foldable<ReactorWitness.flux> |
foldable()
int sum = Fluxs.foldable()
.foldLeft(0, (a,b)->a+b, FluxKind.widen(Flux.of(1,2,3,4)));
//10
|
static <T,R> Functor<ReactorWitness.flux> |
functor()
Transform a flux, mulitplying every element by 2
|
static <T,R> Monad<ReactorWitness.flux> |
monad()
import static com.aol.cyclops.hkt.jdk.FluxKind.widen;
FluxKind<Integer> flux = Fluxs.monad()
.flatMap(i->widen(FluxX.range(0,i)), widen(Flux.of(1,2,3)))
.convert(FluxKind::narrowK);
|
static <T> MonadPlus<ReactorWitness.flux> |
monadPlus()
FluxKind<Integer> flux = Fluxs.<Integer>monadPlus()
.plus(FluxKind.widen(Flux.of()), FluxKind.widen(Flux.of(10)))
.convert(FluxKind::narrowK);
//Flux.of(10))
|
static <T> MonadPlus<ReactorWitness.flux> |
monadPlus(Monoid<Higher<ReactorWitness.flux,T>> m)
Monoid<FluxKind<Integer>> m = Monoid.of(FluxKind.widen(Flux.of()), (a,b)->a.isEmpty() ? b : a);
FluxKind<Integer> flux = Fluxs.<Integer>monadPlus(m)
.plus(FluxKind.widen(Flux.of(5)), FluxKind.widen(Flux.of(10)))
.convert(FluxKind::narrowK);
//Flux.of(5))
|
static <T> MonadPlus<ReactorWitness.flux> |
monadPlusK(Monoid<FluxKind<T>> m) |
static <T,R> MonadRec<ReactorWitness.flux> |
monadRec() |
static <T,R> MonadZero<ReactorWitness.flux> |
monadZero()
FluxKind<String> flux = Fluxs.unit()
.unit("hello")
.then(h->Fluxs.monadZero().filter((String t)->t.startsWith("he"), h))
.convert(FluxKind::narrowK);
//Flux.of("hello"));
|
static <C2,T> Traverse<ReactorWitness.flux> |
traverse() |
static Unfoldable<ReactorWitness.flux> |
unfoldable() |
static <T> Pure<ReactorWitness.flux> |
unit()
FluxKind<String> flux = Fluxs.unit()
.unit("hello")
.convert(FluxKind::narrowK);
//Flux.of("hello"))
|
static <T,R> Applicative<ReactorWitness.flux> |
zippingApplicative()
import static com.aol.cyclops.hkt.jdk.FluxKind.widen;
import static com.aol.cyclops.util.function.Lambda.l1;
Fluxs.zippingApplicative()
.ap(widen(Flux.of(l1(this::multiplyByTwo))),widen(Flux.of(1,2,3)));
//[2,4,6]
|
public static InstanceDefinitions<ReactorWitness.flux> definitions()
public static <T,R> Functor<ReactorWitness.flux> functor()
FluxKind<Integer> flux = Fluxs.functor().map(i->i*2, FluxKind.widen(Flux.of(1,2,3));
//[2,4,6]
An example fluent api working with Fluxs
FluxKind<Integer> flux = Fluxs.unit()
.unit("hello")
.then(h->Fluxs.functor().map((String v) ->v.length(), h))
.convert(FluxKind::narrowK);
public static <T> Pure<ReactorWitness.flux> unit()
FluxKind<String> flux = Fluxs.unit()
.unit("hello")
.convert(FluxKind::narrowK);
//Flux.of("hello"))
public static <T,R> Applicative<ReactorWitness.flux> zippingApplicative()
import static com.aol.cyclops.hkt.jdk.FluxKind.widen;
import static com.aol.cyclops.util.function.Lambda.l1;
Fluxs.zippingApplicative()
.ap(widen(Flux.of(l1(this::multiplyByTwo))),widen(Flux.of(1,2,3)));
//[2,4,6]
Example fluent API
FluxKind<Function<Integer,Integer>> fluxFn =Fluxs.unit()
.unit(Lambda.l1((Integer i) ->i*2))
.convert(FluxKind::narrowK);
FluxKind<Integer> flux = Fluxs.unit()
.unit("hello")
.then(h->Fluxs.functor().map((String v) ->v.length(), h))
.then(h->Fluxs.zippingApplicative().ap(fluxFn, h))
.convert(FluxKind::narrowK);
//Flux.of("hello".length()*2))
public static <T,R> Monad<ReactorWitness.flux> monad()
import static com.aol.cyclops.hkt.jdk.FluxKind.widen;
FluxKind<Integer> flux = Fluxs.monad()
.flatMap(i->widen(FluxX.range(0,i)), widen(Flux.of(1,2,3)))
.convert(FluxKind::narrowK);
Example fluent API
FluxKind<Integer> flux = Fluxs.unit()
.unit("hello")
.then(h->Fluxs.monad().flatMap((String v) ->Fluxs.unit().unit(v.length()), h))
.convert(FluxKind::narrowK);
//Flux.of("hello".length())
public static <T,R> MonadZero<ReactorWitness.flux> monadZero()
FluxKind<String> flux = Fluxs.unit()
.unit("hello")
.then(h->Fluxs.monadZero().filter((String t)->t.startsWith("he"), h))
.convert(FluxKind::narrowK);
//Flux.of("hello"));
public static <T,R> MonadRec<ReactorWitness.flux> monadRec()
public static <T> MonadPlus<ReactorWitness.flux> monadPlus()
FluxKind<Integer> flux = Fluxs.<Integer>monadPlus()
.plus(FluxKind.widen(Flux.of()), FluxKind.widen(Flux.of(10)))
.convert(FluxKind::narrowK);
//Flux.of(10))
public static <T> MonadPlus<ReactorWitness.flux> monadPlus(Monoid<Higher<ReactorWitness.flux,T>> m)
Monoid<FluxKind<Integer>> m = Monoid.of(FluxKind.widen(Flux.of()), (a,b)->a.isEmpty() ? b : a);
FluxKind<Integer> flux = Fluxs.<Integer>monadPlus(m)
.plus(FluxKind.widen(Flux.of(5)), FluxKind.widen(Flux.of(10)))
.convert(FluxKind::narrowK);
//Flux.of(5))
m - Monoid to use for combining Fluxspublic static <T> MonadPlus<ReactorWitness.flux> monadPlusK(Monoid<FluxKind<T>> m)
public static <C2,T> Traverse<ReactorWitness.flux> traverse()
public static <T> Foldable<ReactorWitness.flux> foldable()
int sum = Fluxs.foldable()
.foldLeft(0, (a,b)->a+b, FluxKind.widen(Flux.of(1,2,3,4)));
//10
public static Unfoldable<ReactorWitness.flux> unfoldable()