Skip to content

Thinking Functionally

Paul Louth edited this page May 16, 2017 · 27 revisions

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 composition - Building new functions from existing ones
  8. Combinators - 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 language-ext way
  12. Worked example: A stack based calculator - Using combinators to build functionality

These series have been adapted from the excellent fsharpforfunandprofit site.