Package edu.rice.cs.plt.recur

Classes enabling safe handling of infinite or extremely deep recursion.

See:
          Description

Interface Summary
Continuation<T> A thunk enabling iterative evaluation of a recursive function.
 

Class Summary
ArgContinuation<T,R> A continuation for results that depend on a single recursive invocation, followed by some additional computation.
BinaryArgContinuation<T1,T2,R> A continuation for results that depend on a two recursive invocations, followed by some additional computation.
ComposedContinuation<T,R> A continuation defined in terms of two other continuations, where the second is parameterized by the result of the first.
ContinuationTest  
PendingContinuation<T> A continuation representing computation left to be done (in contrast to ValueContinuation, which represents a completed computation).
PrecomputedRecursionStack<T,R> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
PrecomputedRecursionStack2<T1,T2,R> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
PrecomputedRecursionStack3<T1,T2,T3,R> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
PrecomputedRecursionStack4<T1,T2,T3,T4,R> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
RecursionStack<T> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
RecursionStack2<T1,T2> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
RecursionStack3<T1,T2,T3> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
RecursionStack4<T1,T2,T3,T4> A stack used to store the arguments of a recursive invocation in order to prevent infinite recursion.
RecurUtil TODO: Is the extra overhead required to check for infinite loops enough to justify non-checking alternatives to safeToString, safeEquals, and safeHashCode?
ValueContinuation<T> A continuation that is resolved at creation time.
 

Enum Summary
RecurUtil.ArrayStringMode Defines the representation to be used in array string-generating methods
 

Package edu.rice.cs.plt.recur Description

Classes enabling safe handling of infinite or extremely deep recursion. RecursionStacks may be used to detect repetition in recursive invocations, breaking an infinite recursive loop. Continuations allow recursive methods to be processed iteratively, avoiding potential stack overflow errors. RecurUtil takes advantage of these tools to define utility functions such as safeToString().