Functional programming
In Why functional programming matters, John Hughes describes the advantages of functional languages as follows.
Conventional languages place conceptual limits on the way problems can be modularized. 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.