Skip to content

Thinking Functionally

Paul Louth edited this page Aug 5, 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 - Parsers and more
  9. Function signatures - A function signature can give you some idea of what it does
  10. What is LINQ really? - LINQ is used for collections right? Yes, but much, much more.
  11. Organizing functions - Approaches to organising your application architecture
  12. Attaching functions to types - Creating methods the language-ext way
  13. Worked example: A stack based calculator - Using combinators to build functionality

These series have been adapted from the excellent fsharpforfunandprofit site and is provided under the terms of CC BY 3.0.