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 P3<A,B,C>

java.lang.Object
  extended by fj.P3<A,B,C>

public abstract class P3<A,B,C>
extends Object

A product-3.


Constructor Summary
P3()
           
 
Method Summary
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.
 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.
<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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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 <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 <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 <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 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.

memo

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

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.