In this module, you learned about functions and some patterns that go with them. Functions enable you to reuse functionality by acting as named references to a group of expressions that you're likely to repeat often. Functions also take parameters, which makes them flexible.

You also learned that most of the time, the F# compiler determines the type of your parameters and the type your functions return. But sometimes you need to help the compiler and explicitly state what the type should be. Another benefit of adding types is that they make the code easier to read.

Apart from the foundations of functions, you learned about some useful patterns, such as composition and pipeline. Composition is about combining several functions into a more advanced function. Pipelines are more about operating on data. They take data and process it through a sequence of functions to produce a value.