Class Monoids


  • public final class Monoids
    extends java.lang.Object
    Monoid instances.
    Since:
    3.0
    See Also:
    Semigroups
    • 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.
      • unit

        public static final Monoid<Unit> unit
        A monoid for the Unit value.
    • Constructor Detail

      • Monoids

        private Monoids()
    • 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 type
        B - 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 - a Semigroup object.
        Returns:
        A monoid for options that combine inner value with a semigroup.