1. Abelson, H., & Sussman, G. J. (1996). Structure and Interpretation of Computer Programs (2nd ed.). MIT Press. Section 1.1.6, "Conditional Expressions and Predicates," introduces the concept of computation as the evaluation of expressions composed of functions.
2. Hughes, J. (1989). Why Functional Programming Matters. The Computer Journal, 32(2), 98-107. https://doi.org/10.1093/comjnl/32.2.98 (This paper extensively discusses the modular design facilitated by composing functions.)
3. The Python Software Foundation. (n.d.). Functional Programming HOWTO. Python 3.12.3 documentation. Retrieved from https://docs.python.org/3/howto/functional.html. The introduction states, "Functional programming decomposes a problem into a set of functions."