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