These notes are based on a paper of the same title by John Hughes which was published in The Computer Journal vol.32, in April 1989. As software becomes more complex, it is important to structure it well. Well-structured software is easy to write, easy to debug, and allows modules to be reused.
Conventional languages place limits on reuse.
Functional languages push those limits back. Higher-order functions and lazy evaluation contribute greatly to modularity. The key to understanding the importance of functional programming is to focus on what functional programming adds , rather than what it takes away. How to be modular Modular software is generally accepted to be the key to successful software. Recent languages such as Modula-II and ADA include features to help improve modularity.