Class V3<A>

java.lang.Object
fj.data.vector.V3<A>
All Implemented Interfaces:
Iterable<A>

public final class V3<A> extends Object implements Iterable<A>
A vector-3.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final P1<A>
     
    private final V2<A>
     
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    static <A> F<V3<A>,A>
    __1()
    A first-class function to get the first element of a vector.
    static <A> F<V3<A>,A>
    __2()
    A first-class function to get the second element of a vector.
    static <A> F<V3<A>,A>
    __3()
    A first-class function to get the third element of a vector.
    _1()
    Returns the first element of this vector.
    _2()
    Returns the second element of this vector.
    _3()
    Returns the third element of this vector.
    <B> V3<B>
    apply(V3<F<A,B>> vf)
    Performs function application within a vector (applicative functor pattern).
    static <A> V3<A>
    cons(P1<A> head, V2<A> tail)
    Creates a vector-3 from a head and a tail.
    final boolean
    equals(Object other)
     
    final int
     
    P1<A>
    Returns the first element of this vector, as a product-1.
    Returns an iterator for the elements of this vector.
    <B> V3<B>
    map(F<A,B> f)
    Maps the given function across this vector.
    P3<A,A,A>
    p()
    Returns a homogeneous product-3 equivalent to this vector.
    static <A> V3<A>
    p(P3<A,A,A> p)
    Creates a vector-3 from a homogeneous product-3.
    static <A> F<V3<A>,P3<A,A,A>>
    p_()
    Returns a function that transforms a vector-3 to the equivalent product-3.
    V2<A>
    Returns all but the first element of this vector, as a vector-2.
    Returns an array with the elements of this vector.
    Returns a nonempty list with the elements of this vector.
    Returns a stream of the elements of this vector.
    static <A> F<V3<A>,Stream<A>>
    Returns a function that transforms a vector-3 to a stream of its elements.
    V3<V2<A>>
    vzip(V3<A> bs)
    Zips this vector with the given vector to produce a vector of vectors.
    <B> V3<P2<A,B>>
    zip(V3<B> bs)
    Zips this vector with the given vector to produce a vector of pairs.
    <B, C> V3<C>
    zipWith(F<A,F<B,C>> f, V3<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 Details

    • tail

      private final V2<A> tail
  • Constructor Details

    • V3

      private V3(P1<A> head, V2<A> tail)
  • Method Details

    • equals

      public final boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • p

      public static <A> V3<A> p(P3<A,A,A> p)
      Creates a vector-3 from a homogeneous product-3.
      Parameters:
      p - The product-3 from which to create a vector.
      Returns:
      A new vector-3.
    • cons

      public static <A> V3<A> cons(P1<A> head, V2<A> tail)
      Creates a vector-3 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.
    • tail

      public V2<A> tail()
      Returns all but the first element of this vector, as a vector-2.
      Returns:
      all but the first element of this vector, as a vector-2.
    • 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.
    • p

      public P3<A,A,A> p()
      Returns a homogeneous product-3 equivalent to this vector.
      Returns:
      a homogeneous product-3 equivalent to 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.
    • apply

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

      public <B> V3<P2<A,B>> zip(V3<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 V3<V2<A>> vzip(V3<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.
    • iterator

      public Iterator<A> iterator()
      Returns an iterator for the elements of this vector.
      Specified by:
      iterator in interface Iterable<A>
      Returns:
      an iterator for the elements of 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.
    • map

      public <B> V3<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.
    • toStream_

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

      public static <A> F<V3<A>,P3<A,A,A>> p_()
      Returns a function that transforms a vector-3 to the equivalent product-3.
      Returns:
      a function that transforms a vector-3 to the equivalent product-3.
    • __1

      public static <A> F<V3<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<V3<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<V3<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.