Monday, June 30, 2008
In the previous post we explored “array
extras” and how they can help us to write concise yet performant
and clean code. In this post we take a look at generalizing recursive
algorithms with recursion combinators — high-level functions that
encapsulate all boilerplate code needed to set up the recursion. These functions were added to dojox.lang.functional and will be officially released with Dojo 1.2.
In general the recursion is a form of
iterative problem solving in the same category as loops. There are
two major natural sources of recursive algorithms: recursive data
structures (lists, trees, and so on), and recursive definitions
(factorial, Fibonacci numbers, the GCD algorithm, etc.). The
recursion plays a prominent role in the functional programming (FP),
and one of the best articles on this topic is “Recursion Theory and
Joy” by Manfred von Thun, the creator of Joy (a purely functional
programming language with Forth-like syntax). Manfred's article
explains intricacies of recursion including the venerable Y
combinator, recursion combinators in general, and introduces a
practical set of recursion combinators, which will guide us in
this post.
[Read more]
Save/recommend this post:
Subscribe to this blog: