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
Class P8<A,B,C,D,E,F,G,H>

java.lang.Object
  extended by fj.P8<A,B,C,D,E,F,G,H>

public abstract class P8<A,B,C,D,E,F,G,H>
extends Object

A product-8.


Constructor Summary
P8()
           
 
Method Summary
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,A>
__1()
          Returns a function that returns the first element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,B>
__2()
          Returns a function that returns the second element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,C>
__3()
          Returns a function that returns the third element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,D>
__4()
          Returns a function that returns the fourth element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,E>
__5()
          Returns a function that returns the fifth element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,F$>
__6()
          Returns a function that returns the sixth element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,G>
__7()
          Returns a function that returns the seventh element of a product.
static
<A,B,C,D,E,F$,G,H>
F<P8<A,B,C,D,E,F$,G,H>,H>
__8()
          Returns a function that returns the eighth element of a product.
 P1<A> _1_()
          Returns the 1-product projection over the first element.
abstract  A _1()
          Access the first element of the product.
 P1<B> _2_()
          Returns the 1-product projection over the second element.
abstract  B _2()
          Access the second element of the product.
 P1<C> _3_()
          Returns the 1-product projection over the third element.
abstract  C _3()
          Access the third element of the product.
 P1<D> _4_()
          Returns the 1-product projection over the fourth element.
abstract  D _4()
          Access the fourth element of the product.
 P1<E> _5_()
          Returns the 1-product projection over the fifth element.
abstract  E _5()
          Access the fifth element of the product.
 P1<F> _6_()
          Returns the 1-product projection over the sixth element.
abstract  F _6()
          Access the sixth element of the product.
 P1<G> _7_()
          Returns the 1-product projection over the seventh element.
abstract  G _7()
          Access the seventh element of the product.
 P1<H> _8_()
          Returns the 1-product projection over the eighth element.
abstract  H _8()
          Access the eighth element of the product.
<X> P8<X,B,C,D,E,F,G,H>
map1(F<A,X> f)
          Map the first element of the product.
<X> P8<A,X,C,D,E,F,G,H>
map2(F<B,X> f)
          Map the second element of the product.
<X> P8<A,B,X,D,E,F,G,H>
map3(F<C,X> f)
          Map the third element of the product.
<X> P8<A,B,C,X,E,F,G,H>
map4(F<D,X> f)
          Map the fourth element of the product.
<X> P8<A,B,C,D,X,F,G,H>
map5(F<E,X> f)
          Map the fifth element of the product.
<X> P8<A,B,C,D,E,X,G,H>
map6(F<F,X> f)
          Map the sixth element of the product.
<X> P8<A,B,C,D,E,F,X,H>
map7(F<G,X> f)
          Map the seventh element of the product.
<X> P8<A,B,C,D,E,F,G,X>
map8(F<H,X> f)
          Map the eighth element of the product.
 P8<A,B,C,D,E,F,G,H> memo()
          Provides a memoising P8 that remembers its values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

P8

public P8()
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.

_4

public abstract D _4()
Access the fourth element of the product.

Returns:
The fourth element of the product.

_5

public abstract E _5()
Access the fifth element of the product.

Returns:
The fifth element of the product.

_6

public abstract F _6()
Access the sixth element of the product.

Returns:
The sixth element of the product.

_7

public abstract G _7()
Access the seventh element of the product.

Returns:
The seventh element of the product.

_8

public abstract H _8()
Access the eighth element of the product.

Returns:
The eighth element of the product.

map1

public <X> P8<X,B,C,D,E,F,G,H> 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 <X> P8<A,X,C,D,E,F,G,H> 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 <X> P8<A,B,X,D,E,F,G,H> 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.

map4

public <X> P8<A,B,C,X,E,F,G,H> map4(F<D,X> f)
Map the fourth element of the product.

Parameters:
f - The function to map with.
Returns:
A product with the given function applied.

map5

public <X> P8<A,B,C,D,X,F,G,H> map5(F<E,X> f)
Map the fifth element of the product.

Parameters:
f - The function to map with.
Returns:
A product with the given function applied.

map6

public <X> P8<A,B,C,D,E,X,G,H> map6(F<F,X> f)
Map the sixth element of the product.

Parameters:
f - The function to map with.
Returns:
A product with the given function applied.

map7

public <X> P8<A,B,C,D,E,F,X,H> map7(F<G,X> f)
Map the seventh element of the product.

Parameters:
f - The function to map with.
Returns:
A product with the given function applied.

map8

public <X> P8<A,B,C,D,E,F,G,X> map8(F<H,X> f)
Map the eighth element of the product.

Parameters:
f - The function to map with.
Returns:
A product with the given function applied.

_1_

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

Returns:
the 1-product projection over the first element.

_2_

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

Returns:
the 1-product projection over the second element.

_3_

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

Returns:
the 1-product projection over the third element.

_4_

public P1<D> _4_()
Returns the 1-product projection over the fourth element.

Returns:
the 1-product projection over the fourth element.

_5_

public P1<E> _5_()
Returns the 1-product projection over the fifth element.

Returns:
the 1-product projection over the fifth element.

_6_

public P1<F> _6_()
Returns the 1-product projection over the sixth element.

Returns:
the 1-product projection over the sixth element.

_7_

public P1<G> _7_()
Returns the 1-product projection over the seventh element.

Returns:
the 1-product projection over the seventh element.

_8_

public P1<H> _8_()
Returns the 1-product projection over the eighth element.

Returns:
the 1-product projection over the eighth element.

memo

public P8<A,B,C,D,E,F,G,H> memo()
Provides a memoising P8 that remembers its values.

Returns:
A P8 that calls this P8 once for any given element and remembers the value for subsequent calls.

__1

public static <A,B,C,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,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,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,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,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,C> __3()
Returns a function that returns the third element of a product.

Returns:
A function that returns the third element of a product.

__4

public static <A,B,C,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,D> __4()
Returns a function that returns the fourth element of a product.

Returns:
A function that returns the fourth element of a product.

__5

public static <A,B,C,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,E> __5()
Returns a function that returns the fifth element of a product.

Returns:
A function that returns the fifth element of a product.

__6

public static <A,B,C,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,F$> __6()
Returns a function that returns the sixth element of a product.

Returns:
A function that returns the sixth element of a product.

__7

public static <A,B,C,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,G> __7()
Returns a function that returns the seventh element of a product.

Returns:
A function that returns the seventh element of a product.

__8

public static <A,B,C,D,E,F$,G,H> F<P8<A,B,C,D,E,F$,G,H>,H> __8()
Returns a function that returns the eighth element of a product.

Returns:
A function that returns the eighth element of a product.

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.