The "Thinking functionally" series

This series of posts will introduce you to the fundamentals of functional programming – what does it really mean to “program functionally”, and how this approach differs from object oriented or imperative programming.

A look at the basics of functional programming
The impetus behind functional programming
Binding not assignment
Understanding the type notation
Breaking multi-parameter functions into smaller one-parameter functions
Baking-in some of the parameters of a function
Building new functions from existing ones
Lambdas and more
A function signature can give you some idea of what it does
Nested functions and modules
Creating methods the F# way
Using combinators to build functionality