enow.com Web Search

Search results

  1. Results from the WOW.Com Content Network
  2. Continuation-passing style - Wikipedia

    en.wikipedia.org/wiki/Continuation-passing_style

    Every call in CPS is a tail call, and the continuation is explicitly passed. Using CPS without tail call optimization (TCO) will cause not only the constructed continuation to potentially grow during recursion, but also the call stack. This is usually undesirable, but has been used in interesting ways—see the Chicken Scheme compiler. As CPS ...

  3. Tail call - Wikipedia

    en.wikipedia.org/wiki/Tail_call

    Tail recursion modulo cons is a generalization of tail-recursion optimization introduced by David H. D. Warren [9] in the context of compilation of Prolog, seen as an explicitly set once language. It was described (though not named) by Daniel P. Friedman and David S. Wise in 1974 [ 10 ] as a LISP compilation technique.

  4. Recursion (computer science) - Wikipedia

    en.wikipedia.org/wiki/Recursion_(computer_science)

    The significance of tail recursion is that when making a tail-recursive call (or any tail call), the caller's return position need not be saved on the call stack; when the recursive call returns, it will branch directly on the previously saved return position. Therefore, in languages that recognize this property of tail calls, tail recursion ...

  5. Exponentiation by squaring - Wikipedia

    en.wikipedia.org/wiki/Exponentiation_by_squaring

    This algorithm is not tail-recursive. This implies that it requires an amount of auxiliary memory that is roughly proportional to the number of recursive calls -- or perhaps higher if the amount of data per iteration is increasing.

  6. Mutual recursion - Wikipedia

    en.wikipedia.org/wiki/Mutual_recursion

    As with direct recursion, tail call optimization is necessary if the recursion depth is large or unbounded, such as using mutual recursion for multitasking. Note that tail call optimization in general (when the function called is not the same as the original function, as in tail-recursive calls) may be more difficult to implement than the ...

  7. List of undecidable problems - Wikipedia

    en.wikipedia.org/wiki/List_of_undecidable_problems

    Though undecidable languages are not recursive languages, they may be subsets of Turing recognizable languages: i.e., such undecidable languages may be recursively enumerable. Many, if not most, undecidable problems in mathematics can be posed as word problems : determining when two distinct strings of symbols (encoding some mathematical ...

  8. Corecursion - Wikipedia

    en.wikipedia.org/wiki/Corecursion

    In computer science, corecursion is a type of operation that is dual to recursion.Whereas recursion works analytically, starting on data further from a base case and breaking it down into smaller data and repeating until one reaches a base case, corecursion works synthetically, starting from a base case and building it up, iteratively producing data further removed from a base case.

  9. Transformation Priority Premise - Wikipedia

    en.wikipedia.org/wiki/Transformation_Priority...

    (statement → tail-recursion) (if → while) (statement → non-tail-recursion) (expression → function) replacing an expression with a function or algorithm (variable → assignment) replacing the value of a variable. (case) adding a case (or else) to an existing switch or if; Uncle Bob also explicitly stated: "There are likely others", [1] and