Via λ the Ultimate:
Via λ the
Ultimate: Why Functional
Programming Matters. A wonderful paper (despite its age) touching on
lazy evaluation, functional programming patterns, and uses as examples
numerical differentiation and alpha-beta pruning. Abstract:
As software becomes more and more complex, it is more and more important
to structure it well. Well-structured software is easy to write, easy to
debug, and provides a collection of modules that can be re-used to
reduce future programming costs. Conventional languages place conceptual
limits on the way problems can be modularised. Functional languages push
those limits back. In this paper we show that two features of functional
languages in particular, higher-order functions and lazy evaluation, can
contribute greatly to modularity. As examples, we manipulate lists and
trees, program several numerical algorithms, and implement the
alpha-beta heuristic (an algorithm from Artificial Intelligence used in
game-playing programs). Since modularity is the key to successful
programming, functional languages are vitally important to the real
world.