Package fj

Class Ord<A>


  • public final class Ord<A>
    extends java.lang.Object
    Tests for ordering between two objects.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  Ord.AltDefinition<A>
      Primitives functions of Ord: alternative minimal definition and overridable methods.
      static interface  Ord.Definition<A>
      Primitives functions of Ord: minimal definition and overridable methods.
      (package private) class  Ord.OrdComparator  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Ord<java.math.BigDecimal> bigdecimalOrd
      An order instance for the BigDecimal type.
      static Ord<java.math.BigInteger> bigintOrd
      An order instance for the BigInteger type.
      static Ord<java.lang.Boolean> booleanOrd
      An order instance for the boolean type.
      static Ord<java.lang.Byte> byteOrd
      An order instance for the byte type.
      static Ord<java.lang.Character> charOrd
      An order instance for the char type.
      private Ord.Definition<A> def  
      static Ord<java.lang.Double> doubleOrd
      An order instance for the double type.
      static Ord<java.lang.Float> floatOrd
      An order instance for the float type.
      static Ord<java.lang.Integer> intOrd
      An order instance for the int type.
      static Ord<java.lang.Long> longOrd
      An order instance for the long type.
      F<A,​F<A,​A>> max
      A function that returns the greater of its two arguments.
      F<A,​F<A,​A>> min
      A function that returns the lesser of its two arguments.
      static Ord<Natural> naturalOrd
      An order instance for the Natural type.
      static Ord<Ordering> orderingOrd
      An order instance for the Ordering type.
      static Ord<java.lang.Short> shortOrd
      An order instance for the short type.
      static Ord<java.lang.StringBuffer> stringBufferOrd
      An order instance for the StringBuffer type.
      static Ord<java.lang.StringBuilder> stringBuilderOrd
      An order instance for the StringBuffer type.
      static Ord<java.lang.String> stringOrd
      An order instance for the String type.
      static Ord<Unit> unitOrd
      An order instance for the Unit type.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Ord​(Ord.Definition<A> def)  
    • Field Detail

      • max

        public final F<A,​F<A,​A>> max
        A function that returns the greater of its two arguments.
      • min

        public final F<A,​F<A,​A>> min
        A function that returns the lesser of its two arguments.
      • booleanOrd

        public static final Ord<java.lang.Boolean> booleanOrd
        An order instance for the boolean type.
      • byteOrd

        public static final Ord<java.lang.Byte> byteOrd
        An order instance for the byte type.
      • charOrd

        public static final Ord<java.lang.Character> charOrd
        An order instance for the char type.
      • doubleOrd

        public static final Ord<java.lang.Double> doubleOrd
        An order instance for the double type.
      • floatOrd

        public static final Ord<java.lang.Float> floatOrd
        An order instance for the float type.
      • intOrd

        public static final Ord<java.lang.Integer> intOrd
        An order instance for the int type.
      • bigintOrd

        public static final Ord<java.math.BigInteger> bigintOrd
        An order instance for the BigInteger type.
      • bigdecimalOrd

        public static final Ord<java.math.BigDecimal> bigdecimalOrd
        An order instance for the BigDecimal type.
      • longOrd

        public static final Ord<java.lang.Long> longOrd
        An order instance for the long type.
      • shortOrd

        public static final Ord<java.lang.Short> shortOrd
        An order instance for the short type.
      • orderingOrd

        public static final Ord<Ordering> orderingOrd
        An order instance for the Ordering type.
      • stringOrd

        public static final Ord<java.lang.String> stringOrd
        An order instance for the String type.
      • stringBufferOrd

        public static final Ord<java.lang.StringBuffer> stringBufferOrd
        An order instance for the StringBuffer type.
      • stringBuilderOrd

        public static final Ord<java.lang.StringBuilder> stringBuilderOrd
        An order instance for the StringBuffer type.
      • unitOrd

        public static final Ord<Unit> unitOrd
        An order instance for the Unit type.
      • naturalOrd

        public static final Ord<Natural> naturalOrd
        An order instance for the Natural type.
    • Method Detail

      • compare

        public F<A,​F<A,​Ordering>> compare()
        First-class ordering.
        Returns:
        A function that returns an ordering for its arguments.
      • compare

        public Ordering compare​(A a1,
                                A a2)
        Returns an ordering for the given arguments.
        Parameters:
        a1 - An instance to compare for ordering to another.
        a2 - An instance to compare for ordering to another.
        Returns:
        An ordering for the given arguments.
      • eq

        public boolean eq​(A a1,
                          A a2)
        Returns true if the given arguments are equal, false otherwise.
        Parameters:
        a1 - An instance to compare for equality to another.
        a2 - An instance to compare for equality to another.
        Returns:
        true if the given arguments are equal, false otherwise.
      • equal

        public Equal<A> equal()
        Returns an Equal for this order.
        Returns:
        An Equal for this order.
      • contramap

        public <B> Ord<B> contramap​(F<B,​A> f)
        Maps the given function across this ord as a contra-variant functor.
        Parameters:
        f - The function to map.
        Returns:
        A new ord.
      • isLessThan

        public boolean isLessThan​(A a1,
                                  A a2)
        Returns true if the first given argument is less than the second given argument, false otherwise.
        Parameters:
        a1 - An instance to compare for ordering to another.
        a2 - An instance to compare for ordering to another.
        Returns:
        true if the first given argument is less than the second given argument, false otherwise.
      • isLessThanOrEqualTo

        public boolean isLessThanOrEqualTo​(A a1,
                                           A a2)
        Returns true if the first given argument is less than or equal to the second given argument, false otherwise.
        Parameters:
        a1 - An instance to compare for ordering to another.
        a2 - An instance to compare for ordering to another.
        Returns:
        true if the first given argument is less than or equal to the second given argument, false otherwise.
      • isGreaterThan

        public boolean isGreaterThan​(A a1,
                                     A a2)
        Returns true if the first given argument is greater than the second given argument, false otherwise.
        Parameters:
        a1 - An instance to compare for ordering to another.
        a2 - An instance to compare for ordering to another.
        Returns:
        true if the first given argument is greater than the second given argument, false otherwise.
      • isLessThan

        public F<A,​java.lang.Boolean> isLessThan​(A a)
        Returns a function that returns true if its argument is less than the argument to this method.
        Parameters:
        a - A value to compare against.
        Returns:
        A function that returns true if its argument is less than the argument to this method.
      • isGreaterThan

        public F<A,​java.lang.Boolean> isGreaterThan​(A a)
        Returns a function that returns true if its argument is greater than than the argument to this method.
        Parameters:
        a - A value to compare against.
        Returns:
        A function that returns true if its argument is greater than the argument to this method.
      • max

        public A max​(A a1,
                     A a2)
        Returns the greater of its two arguments.
        Parameters:
        a1 - A value to compare with another.
        a2 - A value to compare with another.
        Returns:
        The greater of the two values.
      • min

        public A min​(A a1,
                     A a2)
        Returns the lesser of its two arguments.
        Parameters:
        a1 - A value to compare with another.
        a2 - A value to compare with another.
        Returns:
        The lesser of the two values.
      • minSemigroup

        public final Semigroup<A> minSemigroup()
      • minMonoid

        public final Monoid<A> minMonoid​(A zero)
      • maxSemigroup

        public final Semigroup<A> maxSemigroup()
      • maxMonoid

        public final Monoid<A> maxMonoid​(A zero)
      • reverse

        public final Ord<A> reverse()
      • contramap

        public static <A,​B> Ord<A> contramap​(F<A,​B> f,
                                                   Ord<B> ord)
        Static version of contramap(F)
      • ord

        public static <A> Ord<A> ord​(F<A,​F<A,​Ordering>> f)
        Returns an order instance that uses the given equality test and ordering function. Java 8+ users: use ordDef(Definition) instead.
        Parameters:
        f - The order function.
        Returns:
        An order instance.
      • ord

        public static <A> Ord<A> ord​(F2<A,​A,​Ordering> f)
        Returns an order instance that uses the given equality test and ordering function. Java 8+ users: use ordDef(AltDefinition) instead.
        Parameters:
        f - The order function.
        Returns:
        An order instance.
      • ordDef

        public static <A> Ord<A> ordDef​(Ord.Definition<A> def)
        Returns an order instance that uses the given minimal equality test and ordering definition.
        Parameters:
        def - The order definition.
        Returns:
        An order instance.
      • ordDef

        public static <A> Ord<A> ordDef​(Ord.AltDefinition<A> def)
        Returns an order instance that uses the given minimal equality test and ordering definition.
        Parameters:
        def - The order definition.
        Returns:
        An order instance.
      • optionOrd

        public static <A> Ord<Option<A>> optionOrd​(Ord<A> oa)
        An order instance for the Option type.
        Parameters:
        oa - Order across the element of the option.
        Returns:
        An order instance for the Option type.
      • eitherOrd

        public static <A,​B> Ord<Either<A,​B>> eitherOrd​(Ord<A> oa,
                                                                   Ord<B> ob)
        An order instance for the Either type.
        Parameters:
        oa - Order across the left side of Either.
        ob - Order across the right side of Either.
        Returns:
        An order instance for the Either type.
      • validationOrd

        public static <A,​B> Ord<Validation<A,​B>> validationOrd​(Ord<A> oa,
                                                                           Ord<B> ob)
        An order instance for the Validation type.
        Parameters:
        oa - Order across the failing side of Validation.
        ob - Order across the succeeding side of Validation.
        Returns:
        An order instance for the Validation type.
      • listOrd

        public static <A> Ord<List<A>> listOrd​(Ord<A> oa)
        An order instance for the List type.
        Parameters:
        oa - Order across the elements of the list.
        Returns:
        An order instance for the List type.
      • seqOrd

        public static <A> Ord<Seq<A>> seqOrd​(Ord<A> ord)
        Return a seq ord using the given value ord.
        Type Parameters:
        A - the type of the seq value
        Parameters:
        ord - the given value ord
        Returns:
        the seq ord
      • nonEmptyListOrd

        public static <A> Ord<NonEmptyList<A>> nonEmptyListOrd​(Ord<A> oa)
        An order instance for the NonEmptyList type.
        Parameters:
        oa - Order across the elements of the non-empty list.
        Returns:
        An order instance for the NonEmptyList type.
      • streamOrd

        public static <A> Ord<Stream<A>> streamOrd​(Ord<A> oa)
        An order instance for the Stream type.
        Parameters:
        oa - Order across the elements of the stream.
        Returns:
        An order instance for the Stream type.
      • arrayOrd

        public static <A> Ord<Array<A>> arrayOrd​(Ord<A> oa)
        An order instance for the Array type.
        Parameters:
        oa - Order across the elements of the array.
        Returns:
        An order instance for the Array type.
      • setOrd

        public static <A> Ord<Set<A>> setOrd​(Ord<A> oa)
        An order instance for the Set type.
        Parameters:
        oa - Order across the elements of the set.
        Returns:
        An order instance for the Set type.
      • p1Ord

        public static <A> Ord<P1<A>> p1Ord​(Ord<A> oa)
        An order instance for a product-1.
        Parameters:
        oa - Order across the produced type.
        Returns:
        An order instance for a product-1.
      • p2Ord

        public static <A,​B> Ord<P2<A,​B>> p2Ord​(Ord<A> oa,
                                                           Ord<B> ob)
        An order instance for a product-2, with the first factor considered most significant.
        Parameters:
        oa - An order instance for the first factor.
        ob - An order instance for the second factor.
        Returns:
        An order instance for a product-2, with the first factor considered most significant.
      • p2Ord1

        public static <A,​B> Ord<P2<A,​B>> p2Ord1​(Ord<A> oa)
      • p2Ord2

        public static <A,​B> Ord<P2<A,​B>> p2Ord2​(Ord<B> ob)
      • p3Ord

        public static <A,​B,​C> Ord<P3<A,​B,​C>> p3Ord​(Ord<A> oa,
                                                                           Ord<B> ob,
                                                                           Ord<C> oc)
        An order instance for a product-3, with the first factor considered most significant.
        Parameters:
        oa - An order instance for the first factor.
        ob - An order instance for the second factor.
        oc - An order instance for the third factor.
        Returns:
        An order instance for a product-3, with the first factor considered most significant.
      • comparableOrd

        public static <A extends java.lang.Comparable<A>> Ord<A> comparableOrd()
        An order instance for the Comparable interface.
        Returns:
        An order instance for the Comparable interface.
      • toComparator

        public java.util.Comparator<A> toComparator()