Orbital library

orbital.logic.functor
Class Functionals.Paramorphism

java.lang.Object
  extended by orbital.logic.functor.Functionals.Paramorphism
All Implemented Interfaces:
java.io.Serializable, Function, Functor
Enclosing class:
Functionals

public static class Functionals.Paramorphism
extends java.lang.Object
implements Function, java.io.Serializable

Paramorphism recursion functional scheme (barbed wire).

A paramorphism is denoted by barbed wires.

this = {|b,f|}

Author:
André Platzer
See Also:
Functionals.barbedwire(Object, BinaryFunction, Iterator), Functionals.barbedwire(int, BinaryFunction, int), "Lambert Meertens. Paramorphisms. In: Formal Aspects of Computing, 1990.", Meijer, E. and Fokkinga, M.M. and Paterson, R., Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire, FPCA91: Functional Programming Languages and Computer Architecture, pp. 124--144, volume 523, Lecture Notes in Computer Science, Springer-Verlag, 1991., Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface orbital.logic.functor.Function
Function.Composite
 
Nested classes/interfaces inherited from interface orbital.logic.functor.Functor
Functor.Specification
 
Field Summary
 
Fields inherited from interface orbital.logic.functor.Function
callTypeDeclaration
 
Constructor Summary
Functionals.Paramorphism(java.lang.Object b, BinaryFunction f)
          Constructs a new paramorphism {|b,f|}:A*→B.
 
Method Summary
 java.lang.Object apply(java.lang.Object a)
          {|b,f|} a.
 boolean equals(java.lang.Object o)
          .
 int hashCode()
           
 java.lang.String toString()
          Returns a string representation of the Functor.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Functionals.Paramorphism

public Functionals.Paramorphism(java.lang.Object b,
                                BinaryFunction f)
Constructs a new paramorphism {|b,f|}:A*→B.

Parameters:
b - is the basevalue b∈B to use.
f - is a binary function f:A×(A*||B)→B.
Method Detail

equals

public boolean equals(java.lang.Object o)
Description copied from interface: Functor
.

Note that functors will often provide intensional equality only, since the mathematical notion of extensional equality for functions and predicates is undecidable anyway (Proposition of Rice). Nevertheless implementations are encouraged to provide a larger subset of extensional equality as far as possible.

Specified by:
equals in interface Functor
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Functor
Overrides:
hashCode in class java.lang.Object

apply

public final java.lang.Object apply(java.lang.Object a)
{|b,f|} a.
para ∅ = b
para [a|as] = f(a, ⟨as, para as⟩)
{|b,f|} := barbedwire(b,f) := para

Specified by:
apply in interface Function
Parameters:
a - is a generalized iteratable over a list of objects.
Returns:
the value {|b,f|} a.

toString

public java.lang.String toString()
Description copied from interface: Functor
Returns a string representation of the Functor.

This method is already provided in Object.toString(). If it is overwritten it should return a nice name for the functor.

Specified by:
toString in interface Functor
Overrides:
toString in class java.lang.Object
Returns:
a nice name for the functor.

Orbital library
1.3.0: 11 Apr 2009

Copyright © 1996-2009 André Platzer
All Rights Reserved.