Copyright 2008 - 2010 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg

This software is released under an open source BSD licence.

fj.data.vector
Class V4<A>

java.lang.Object
  extended by fj.data.vector.V4<A>
All Implemented Interfaces:
Iterable<A>

public final class V4<A>
extends Object
implements Iterable<A>

A vector-4.


Method Summary
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 third 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.
 P1<A> head()
          Returns the first element of this vector, as a product-1.
 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.
static
<A> F<V4<A>,P4<A,A,A,A>>
p_()
          Returns a function that transforms a vector-4 to the equivalent product-4.
 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.
 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.
static
<A> F<V4<A>,Stream<A>>
toStream_()
          Returns a function that transforms a vector-4 to a stream of its elements.
 Stream<A> toStream()
          Returns a stream of the elements of this vector.
 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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

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 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.

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 third element of a vector.

Returns:
a function that gets the third element of a given vector.

Copyright 2008 - 2010 Tony Morris, Runar Bjarnason, Tom Adams, Brad Clow, Ricky Clarkson, Nick Partridge, Jason Zaugg

This software is released under an open source BSD licence.