One of the things that makes F# a functional-first language is that its functions are “first-class values.” We establish what that really means, and how genuinely useful it is. We learn how you can use first class functions to build simple, refactorable code. We get familiar with arguming currying and partial application. We see how to pass functions into other functions, and how to return functions from functions. We reinforce the importance of type signatures and see how these can be used to smooth the process of function-based development.