Skip to content

Thinking Functionally

Paul Louth edited this page May 20, 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? No, much, much more.

  11. Organizing functions - Nested functions and modules

  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.