Package io.atlassian.fugue
Class Monoids
- java.lang.Object
-
- io.atlassian.fugue.Monoids
-
public final class Monoids extends java.lang.ObjectMonoidinstances.- Since:
- 3.0
- See Also:
Semigroups
-
-
Field Summary
Fields Modifier and Type Field Description static Monoid<java.math.BigInteger>bigintAdditionA monoid that adds big integers.static Monoid<java.math.BigInteger>bigintMultiplicationA monoid that multiplies big integers.static Monoid<java.lang.Boolean>conjunctionA monoid that ANDs booleans.static Monoid<java.lang.Boolean>disjunctionA monoid that ORs booleans.static Monoid<java.lang.Boolean>exclusiveDisjunctionA monoid that XORs booleans.static Monoid<java.lang.Integer>intAdditionA monoid that adds integers.static Monoid<java.lang.Integer>intMultiplicationA monoid that multiplies integers.static Monoid<java.lang.Long>longAdditionA monoid that adds longs.static Monoid<java.lang.Long>longMultiplicationA monoid that multiplies longs.static Monoid<java.lang.String>stringA monoid that appends strings.static Monoid<Unit>unitA monoid for the Unit value.
-
Constructor Summary
Constructors Modifier Constructor Description privateMonoids()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <L,R>
Monoid<Either<L,R>>either(Semigroup<L> lS, Monoid<R> rM)A monoid Sums up values inside eitherSemigroups.either(io.atlassian.fugue.Semigroup<L>, io.atlassian.fugue.Semigroup<R>).static <A> Monoid<Option<A>>firstOption()A monoid for options (that take the first available value).static <A,B>
Monoid<java.util.function.Function<A,B>>function(Monoid<B> mb)A monoid for functions.static <A> Monoid<java.lang.Iterable<A>>iterable()A monoid for iterables.static <A> Monoid<Option<A>>lastOption()A monoid for options that take the last available value.static <A> Monoid<java.util.List<A>>list()A monoid for lists.static <A> Monoid<Option<A>>option(Semigroup<A> semigroup)A monoid for options that combine inner value with a semigroup.
-
-
-
Field Detail
-
intAddition
public static final Monoid<java.lang.Integer> intAddition
A monoid that adds integers.
-
intMultiplication
public static final Monoid<java.lang.Integer> intMultiplication
A monoid that multiplies integers.
-
bigintAddition
public static final Monoid<java.math.BigInteger> bigintAddition
A monoid that adds big integers.
-
bigintMultiplication
public static final Monoid<java.math.BigInteger> bigintMultiplication
A monoid that multiplies big integers.
-
longAddition
public static final Monoid<java.lang.Long> longAddition
A monoid that adds longs.
-
longMultiplication
public static final Monoid<java.lang.Long> longMultiplication
A monoid that multiplies longs.
-
disjunction
public static final Monoid<java.lang.Boolean> disjunction
A monoid that ORs booleans.
-
exclusiveDisjunction
public static final Monoid<java.lang.Boolean> exclusiveDisjunction
A monoid that XORs booleans.
-
conjunction
public static final Monoid<java.lang.Boolean> conjunction
A monoid that ANDs booleans.
-
string
public static final Monoid<java.lang.String> string
A monoid that appends strings.
-
-
Method Detail
-
function
public static <A,B> Monoid<java.util.function.Function<A,B>> function(Monoid<B> mb)
A monoid for functions.- Type Parameters:
A- input typeB- composable output type- Parameters:
mb- The monoid for the function codomain.- Returns:
- A monoid for functions.
-
list
public static <A> Monoid<java.util.List<A>> list()
A monoid for lists.- Type Parameters:
A- internal type- Returns:
- A monoid for lists.
-
iterable
public static <A> Monoid<java.lang.Iterable<A>> iterable()
A monoid for iterables.- Type Parameters:
A- internal type- Returns:
- A monoid for iterables.
-
firstOption
public static <A> Monoid<Option<A>> firstOption()
A monoid for options (that take the first available value).- Type Parameters:
A- internal type- Returns:
- A monoid for options (that take the first available value).
-
lastOption
public static <A> Monoid<Option<A>> lastOption()
A monoid for options that take the last available value.- Type Parameters:
A- internal type- Returns:
- A monoid for options that take the last available value.
-
option
public static <A> Monoid<Option<A>> option(Semigroup<A> semigroup)
A monoid for options that combine inner value with a semigroup.- Type Parameters:
A- internal type- Parameters:
semigroup- aSemigroupobject.- Returns:
- A monoid for options that combine inner value with a semigroup.
-
either
public static <L,R> Monoid<Either<L,R>> either(Semigroup<L> lS, Monoid<R> rM)
A monoid Sums up values inside eitherSemigroups.either(io.atlassian.fugue.Semigroup<L>, io.atlassian.fugue.Semigroup<R>). Monoid of right values provide the identity element of the resulting monoid.- Type Parameters:
L- desired left typeR- desired right type- Parameters:
lS- semigroup for left valuesrM- monoid for right values.- Returns:
- A monoid Sums up values inside either.
-
-