Class V4<A>

  • All Implemented Interfaces:
    java.lang.Iterable<A>

    public final class V4<A>
    extends java.lang.Object
    implements java.lang.Iterable<A>
    A vector-4.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private P1<A> head  
      private V3<A> tail  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private V4​(P1<A> head, V3<A> tail)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static <A> F<V4<A>,​A> __1()
      A first-class function to get the first element of a vector.
      static <A> F<V4<A>,​A> __2()
      A first-class function to get the second element of a vector.
      static <A> F<V4<A>,​A> __3()
      A first-class function to get the third element of a vector.
      static <A> F<V4<A>,​A> __4()
      A first-class function to get the fourth element of a vector.
      A _1()
      Returns the first element of this vector.
      A _2()
      Returns the second element of this vector.
      A _3()
      Returns the third element of this vector.
      A _4()
      Returns the fourth element of this vector.
      <B> V4<B> apply​(V4<F<A,​B>> vf)
      Performs function application within a vector (applicative functor pattern).
      static <A> V4<A> cons​(P1<A> head, V3<A> tail)
      Creates a vector-4 from a head and a tail.
      boolean equals​(java.lang.Object other)  
      int hashCode()  
      P1<A> head()
      Returns the first element of this vector, as a product-1.
      java.util.Iterator<A> iterator()
      Returns an iterator for the elements of this vector.
      <B> V4<B> map​(F<A,​B> f)
      Maps the given function across this vector.
      P4<A,​A,​A,​A> p()
      Returns a homogeneous product-4 equivalent to this vector.
      static <A> V4<A> p​(P4<A,​A,​A,​A> p)
      Creates a vector-4 from a homogeneous product-4.
      static <A> F<V4<A>,​P4<A,​A,​A,​A>> p_()
      Returns a function that transforms a vector-4 to the equivalent product-4.
      V3<A> tail()
      Returns all but the first element of this vector, as a vector-3.
      Array<A> toArray()
      Returns an array with the elements of this vector.
      NonEmptyList<A> toNonEmptyList()
      Returns a nonempty list with the elements of this vector.
      Stream<A> toStream()
      Returns a stream of the elements of this vector.
      static <A> F<V4<A>,​Stream<A>> toStream_()
      Returns a function that transforms a vector-4 to a stream of its elements.
      V4<V2<A>> vzip​(V4<A> bs)
      Zips this vector with the given vector to produce a vector of vectors.
      <B> V4<P2<A,​B>> zip​(V4<B> bs)
      Zips this vector with the given vector to produce a vector of pairs.
      <B,​C>
      V4<C>
      zipWith​(F<A,​F<B,​C>> f, V4<B> bs)
      Zips this vector with the given vector using the given function to produce a new vector.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • tail

        private final V3<A> tail
      • head

        private final P1<A> head
    • Constructor Detail

      • V4

        private V4​(P1<A> head,
                   V3<A> tail)
    • Method Detail

      • 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
      • p

        public static <A> V4<A> p​(P4<A,​A,​A,​A> p)
        Creates a vector-4 from a homogeneous product-4.
        Parameters:
        p - The product-4 from which to create a vector.
        Returns:
        A new vector-4.
      • cons

        public static <A> V4<A> cons​(P1<A> head,
                                     V3<A> tail)
        Creates a vector-4 from a head and a tail.
        Parameters:
        head - The value to put as the first element of the vector.
        tail - The vector representing all but the first element of the new vector.
        Returns:
        The new vector.
      • _1

        public A _1()
        Returns the first element of this vector.
        Returns:
        the first element of this vector.
      • _2

        public A _2()
        Returns the second element of this vector.
        Returns:
        the second element of this vector.
      • _3

        public A _3()
        Returns the third element of this vector.
        Returns:
        the third element of this vector.
      • _4

        public A _4()
        Returns the fourth element of this vector.
        Returns:
        the fourth element of this vector.
      • tail

        public V3<A> tail()
        Returns all but the first element of this vector, as a vector-3.
        Returns:
        all but the first element of this vector, as a vector-3.
      • head

        public P1<A> head()
        Returns the first element of this vector, as a product-1.
        Returns:
        the first element of this vector, as a product-1.
      • iterator

        public java.util.Iterator<A> iterator()
        Returns an iterator for the elements of this vector.
        Specified by:
        iterator in interface java.lang.Iterable<A>
        Returns:
        an iterator for the elements of this vector.
      • p

        public P4<A,​A,​A,​A> p()
        Returns a homogeneous product-4 equivalent to this vector.
        Returns:
        a homogeneous product-4 equivalent to this vector.
      • toNonEmptyList

        public NonEmptyList<A> toNonEmptyList()
        Returns a nonempty list with the elements of this vector.
        Returns:
        a nonempty list with the elements of this vector.
      • toStream

        public Stream<A> toStream()
        Returns a stream of the elements of this vector.
        Returns:
        a stream of the elements of this vector.
      • toArray

        public Array<A> toArray()
        Returns an array with the elements of this vector.
        Returns:
        an array with the elements of this vector.
      • map

        public <B> V4<B> map​(F<A,​B> f)
        Maps the given function across this vector.
        Parameters:
        f - The function to map across this vector.
        Returns:
        A new vector after the given function has been applied to each element.
      • apply

        public <B> V4<B> apply​(V4<F<A,​B>> vf)
        Performs function application within a vector (applicative functor pattern).
        Parameters:
        vf - The vector of functions to apply.
        Returns:
        A new vector after zipping the given vector of functions over this vector.
      • zipWith

        public <B,​C> V4<C> zipWith​(F<A,​F<B,​C>> f,
                                         V4<B> bs)
        Zips this vector with the given vector using the given function to produce a new vector.
        Parameters:
        bs - The vector to zip this vector with.
        f - The function to zip this vector and the given vector with.
        Returns:
        A new vector with the results of the function.
      • zip

        public <B> V4<P2<A,​B>> zip​(V4<B> bs)
        Zips this vector with the given vector to produce a vector of pairs.
        Parameters:
        bs - The vector to zip this vector with.
        Returns:
        A new vector with a length the same as the shortest of this vector and the given vector.
      • vzip

        public V4<V2<A>> vzip​(V4<A> bs)
        Zips this vector with the given vector to produce a vector of vectors.
        Parameters:
        bs - The vector to zip this vector with.
        Returns:
        A new vector of vectors.
      • toStream_

        public static <A> F<V4<A>,​Stream<A>> toStream_()
        Returns a function that transforms a vector-4 to a stream of its elements.
        Returns:
        a function that transforms a vector-4 to a stream of its elements.
      • p_

        public static <A> F<V4<A>,​P4<A,​A,​A,​A>> p_()
        Returns a function that transforms a vector-4 to the equivalent product-4.
        Returns:
        a function that transforms a vector-4 to the equivalent product-4.
      • __1

        public static <A> F<V4<A>,​A> __1()
        A first-class function to get the first element of a vector.
        Returns:
        a function that gets the first element of a given vector.
      • __2

        public static <A> F<V4<A>,​A> __2()
        A first-class function to get the second element of a vector.
        Returns:
        a function that gets the second element of a given vector.
      • __3

        public static <A> F<V4<A>,​A> __3()
        A first-class function to get the third element of a vector.
        Returns:
        a function that gets the third element of a given vector.
      • __4

        public static <A> F<V4<A>,​A> __4()
        A first-class function to get the fourth element of a vector.
        Returns:
        a function that gets the fourth element of a given vector.