# Why functional programming matters > ## Abstract ## Abstract > As [software](https://wiki.g15e.com/pages/Software.txt) 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 reused to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. [Functional languages](https://wiki.g15e.com/pages/Functional%20language.txt) push those limits back. In this paper we show that two features of functional languages in particular, and [lazy evaluation](https://wiki.g15e.com/pages/Lazy%20evaluation.txt), can contribute greatly to modularity. As examples, we manipulate lists and , program several numerical algorithms, and implement the alpha-beta heuristic (an algorithm from [Artificial Intelligence](https://wiki.g15e.com/pages/Artificial%20intelligence.txt) used in game-playing programs). Since modularity is the key to successful programming, functional languages are vitally important to the real world. https://www.researchgate.net/publication/2452204_Why_Functional_Programming_Matters