Package fj

Class P3<A,​B,​C>


  • public abstract class P3<A,​B,​C>
    extends java.lang.Object
    A product-3.
    • Constructor Summary

      Constructors 
      Constructor Description
      P3()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static <A,​B,​C>
      F<P3<A,​B,​C>,​A>
      __1()
      Returns a function that returns the first element of a product.
      static <A,​B,​C>
      F<P3<A,​B,​C>,​B>
      __2()
      Returns a function that returns the second element of a product.
      static <A,​B,​C>
      F<P3<A,​B,​C>,​C>
      __3()
      Returns a function that returns the third element of a product.
      abstract A _1()
      Access the first element of the product.
      P1<A> _1_()
      Returns the 1-product projection over the first element.
      abstract B _2()
      Access the second element of the product.
      P1<B> _2_()
      Returns the 1-product projection over the second element.
      abstract C _3()
      Access the third element of the product.
      P1<C> _3_()
      Returns the 1-product projection over the third element.
      <D> P4<A,​B,​C,​D> append​(D el)
      Creates a P4 by adding the given element to the current P3
      <D,​E>
      P5<A,​B,​C,​D,​E>
      append​(P2<D,​E> el)
      Creates a P5 by adding the given element to the current P3
      <D,​E,​F>
      P6<A,​B,​C,​D,​E,​F>
      append​(P3<D,​E,​F> el)
      Creates a P6 by adding the given element to the current P3
      <D,​E,​F,​G>
      P7<A,​B,​C,​D,​E,​F,​G>
      append​(P4<D,​E,​F,​G> el)
      Creates a P7 by adding the given element to the current P3
      <D,​E,​F,​G,​H>
      P8<A,​B,​C,​D,​E,​F,​G,​H>
      append​(P5<D,​E,​F,​G,​H> el)
      Creates a P8 by adding the given element to the current P3
      boolean equals​(java.lang.Object other)  
      int hashCode()  
      <X> P3<X,​B,​C> map1​(F<A,​X> f)
      Map the first element of the product.
      <X> P3<A,​X,​C> map2​(F<B,​X> f)
      Map the second element of the product.
      <X> P3<A,​B,​X> map3​(F<C,​X> f)
      Map the third element of the product.
      P3<A,​B,​C> memo()
      Provides a memoising P3 that remembers its values.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • P3

        public P3()
    • Method Detail

      • _1

        public abstract A _1()
        Access the first element of the product.
        Returns:
        The first element of the product.
      • _2

        public abstract B _2()
        Access the second element of the product.
        Returns:
        The second element of the product.
      • _3

        public abstract C _3()
        Access the third element of the product.
        Returns:
        The third element of the product.
      • map1

        public final <X> P3<X,​B,​C> map1​(F<A,​X> f)
        Map the first element of the product.
        Parameters:
        f - The function to map with.
        Returns:
        A product with the given function applied.
      • map2

        public final <X> P3<A,​X,​C> map2​(F<B,​X> f)
        Map the second element of the product.
        Parameters:
        f - The function to map with.
        Returns:
        A product with the given function applied.
      • map3

        public final <X> P3<A,​B,​X> map3​(F<C,​X> f)
        Map the third element of the product.
        Parameters:
        f - The function to map with.
        Returns:
        A product with the given function applied.
      • _1_

        public final P1<A> _1_()
        Returns the 1-product projection over the first element.
        Returns:
        the 1-product projection over the first element.
      • _2_

        public final P1<B> _2_()
        Returns the 1-product projection over the second element.
        Returns:
        the 1-product projection over the second element.
      • _3_

        public final P1<C> _3_()
        Returns the 1-product projection over the third element.
        Returns:
        the 1-product projection over the third element.
      • append

        public final <D> P4<A,​B,​C,​D> append​(D el)
        Creates a P4 by adding the given element to the current P3
        Parameters:
        el - the element to append
        Returns:
        A P4 containing the original P3 with the extra element added at the end
      • append

        public final <D,​E> P5<A,​B,​C,​D,​E> append​(P2<D,​E> el)
        Creates a P5 by adding the given element to the current P3
        Parameters:
        el - the element to append
        Returns:
        A P5 containing the original P3 with the extra element added at the end
      • append

        public final <D,​E,​F> P6<A,​B,​C,​D,​E,​F> append​(P3<D,​E,​F> el)
        Creates a P6 by adding the given element to the current P3
        Parameters:
        el - the element to append
        Returns:
        A P6 containing the original P3 with the extra element added at the end
      • append

        public final <D,​E,​F,​G> P7<A,​B,​C,​D,​E,​F,​G> append​(P4<D,​E,​F,​G> el)
        Creates a P7 by adding the given element to the current P3
        Parameters:
        el - the element to append
        Returns:
        A P7 containing the original P3 with the extra element added at the end
      • append

        public final <D,​E,​F,​G,​H> P8<A,​B,​C,​D,​E,​F,​G,​H> append​(P5<D,​E,​F,​G,​H> el)
        Creates a P8 by adding the given element to the current P3
        Parameters:
        el - the element to append
        Returns:
        A P8 containing the original P3 with the extra element added at the end
      • memo

        public final P3<A,​B,​C> memo()
        Provides a memoising P3 that remembers its values.
        Returns:
        A P3 that calls this P3 once for any given element and remembers the value for subsequent calls.
      • __1

        public static <A,​B,​C> F<P3<A,​B,​C>,​A> __1()
        Returns a function that returns the first element of a product.
        Returns:
        A function that returns the first element of a product.
      • __2

        public static <A,​B,​C> F<P3<A,​B,​C>,​B> __2()
        Returns a function that returns the second element of a product.
        Returns:
        A function that returns the second element of a product.
      • __3

        public static <A,​B,​C> F<P3<A,​B,​C>,​C> __3()
        Returns a function that returns the third element of a product.
        Returns:
        A function that returns the third element of a product.
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public final boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class java.lang.Object