Function composition is combining functions together. It's how you build libraries, API's, and programs using Functional Programming. It's a well defined math term, and usually refers to combining Partial Applications together.
However, there are a variety of ways to combine functions together. Pure Functions are the core awesomeness of Functional Programming. Showing the variety of ways you can use these in real world programming is helpful and justifies your hard work.
We'll cover passing functions as parameters, using various ways to compose function pipelines both sync and async, and finally tacit programming which is also called point free programming.