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.
-
1. Thinking Functionally: Introduction
A look at the basics of functional programming -
2. Mathematical functions
The impetus behind functional programming -
3. Function Values and Simple Values
Binding not assignment -
4. How types work with functions
Understanding the type notation -
5. Currying
Breaking multi-parameter functions into smaller one-parameter functions -
6. Partial application
Baking-in some of the parameters of a function -
7. Function associativity and composition
Building new functions from existing ones -
8. Defining functions
Lambdas and more -
9. Function signatures
A function signature can give you some idea of what it does -
10. Organizing functions
Nested functions and modules -
11. Attaching functions to types
Creating methods the F# way -
12. Worked example: A stack based calculator
Using combinators to build functionality