Class MinBy<A,​B extends java.lang.Comparable<B>>

  • Type Parameters:
    A - the value type
    B - the mapped comparison type
    All Implemented Interfaces:
    Fn1<Fn1<? super A,​? extends B>,​Fn1<A,​Fn1<A,​A>>>, Fn2<Fn1<? super A,​? extends B>,​A,​Fn1<A,​A>>, Fn3<Fn1<? super A,​? extends B>,​A,​A,​A>, SemigroupFactory<Fn1<? super A,​? extends B>,​A>, Applicative<Fn1<A,​Fn1<A,​A>>,​Fn1<Fn1<? super A,​? extends B>,​?>>, Cartesian<Fn1<? super A,​? extends B>,​Fn1<A,​Fn1<A,​A>>,​Fn1<?,​?>>, Cocartesian<Fn1<? super A,​? extends B>,​Fn1<A,​Fn1<A,​A>>,​Fn1<?,​?>>, Contravariant<Fn1<? super A,​? extends B>,​Profunctor<?,​Fn1<A,​Fn1<A,​A>>,​Fn1<?,​?>>>, Functor<Fn1<A,​Fn1<A,​A>>,​Fn1<Fn1<? super A,​? extends B>,​?>>, Profunctor<Fn1<? super A,​? extends B>,​Fn1<A,​Fn1<A,​A>>,​Fn1<?,​?>>, Monad<Fn1<A,​Fn1<A,​A>>,​Fn1<Fn1<? super A,​? extends B>,​?>>, MonadReader<Fn1<? super A,​? extends B>,​Fn1<A,​Fn1<A,​A>>,​Fn1<Fn1<? super A,​? extends B>,​?>>, MonadRec<Fn1<A,​Fn1<A,​A>>,​Fn1<Fn1<? super A,​? extends B>,​?>>, MonadWriter<Fn1<? super A,​? extends B>,​Fn1<A,​Fn1<A,​A>>,​Fn1<Fn1<? super A,​? extends B>,​?>>

    public final class MinBy<A,​B extends java.lang.Comparable<B>>
    extends java.lang.Object
    implements SemigroupFactory<Fn1<? super A,​? extends B>,​A>
    Given a mapping function from some type A to some Comparable type B, produce a Semigroup over A that chooses between two values x and y via the following rules:
    • If x is strictly greater than y in terms of B, return y
    • Otherwise, return x
    See Also:
    Min, MaxBy
    • Field Detail

      • INSTANCE

        private static final MinBy<?,​?> INSTANCE
    • Constructor Detail

      • MinBy

        private MinBy()
    • Method Detail

      • checkedApply

        public Semigroup<A> checkedApply​(Fn1<? super A,​? extends B> compareFn)
        Description copied from interface: Fn2
        Invoke this function with the given argument, potentially throwing any Throwable.
        Specified by:
        checkedApply in interface Fn1<A,​B extends java.lang.Comparable<B>>
        Specified by:
        checkedApply in interface Fn2<Fn1<? super A,​? extends B extends java.lang.Comparable<B>>,​A,​Fn1<A,​A>>
        Specified by:
        checkedApply in interface SemigroupFactory<A,​B extends java.lang.Comparable<B>>
        Parameters:
        compareFn - the argument
        Returns:
        the result of the function application
      • minBy

        public static <A,​B extends java.lang.Comparable<B>> MinBy<A,​B> minBy()
      • minBy

        public static <A,​B extends java.lang.Comparable<B>> Semigroup<A> minBy​(Fn1<? super A,​? extends B> compareFn)
      • minBy

        public static <A,​B extends java.lang.Comparable<B>> Fn1<A,​A> minBy​(Fn1<? super A,​? extends B> compareFn,
                                                                                       A x)
      • minBy

        public static <A,​B extends java.lang.Comparable<B>> A minBy​(Fn1<? super A,​? extends B> compareFn,
                                                                          A x,
                                                                          A y)