endrov.util.lazy
Class Memoize<E>

java.lang.Object
  extended by endrov.util.lazy.Memoize<E>
Direct Known Subclasses:
MemoizeImmediate

public abstract class Memoize<E>
extends java.lang.Object

Lazy evaluation and memoization. Haskell semantics for java.


Constructor Summary
Memoize()
           
 
Method Summary
protected abstract  E eval()
          Evaluate value
 E get()
          Get value, evaluate if required.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Memoize

public Memoize()
Method Detail

get

public E get()
Get value, evaluate if required. Evaluation occurs at most once


eval

protected abstract E eval()
Evaluate value