Articles, Papers & Blog Posts
Why Functional Programming Matters ("WhyFP")
Considered to be “the” paper describing the importance of functional programming.
Why Why Functional Programming Matters Matters
A short reflection of Why Functional Programming Matters, with a particular focus on language design.
How Functional Programming Mattered
This paper attempts to asses the impact that functional programming has had in the real world, more than 20 years after Why Functional Programming Matters was written.
What is Reactive Programming?
A very concise explanation of what (functional) reactive programming is.
Functors, Applicatives, And Monads In Pictures
A great illustrated introduction to functors, applicatives and monads.
The algebra (and calculus!) of algebraic data types
An intermediate-level article which explores the connection between algebraic data types and elemendary algebra. A basic understanding of Haskell's data type declaration syntax is assumed.
Books
Professor Frisby's Mostly Adequate Guide to Functional Programming
A general look at the functional paradigm, using JavaScript as the example language. This book is available on GitHub (under the Attribution-ShareAlike license).
Structure and Interpretation of Computer Programs
Available for free on MIT Press, this classic textbook covers the foundations of modern programming. Scheme is the main language used, so most of the book is written from a functional perspective.
Videos
The Essence of FRP
Conal Elliott talks about how the definition of FPR has recently become more and more misunderstood. He explains the original definition of FRP and the benefits it is intended to provide.
Lenses: compositional data access and manipulation
An introduction to lens, and how lenses can help simplify working with complex data types.
Lenses, Folds, and Traversals
A talk centred around the lens package, covering how to compose lenses using Haskell's regular composition operator (.
), and illustrating a scheme for performing lens-based folds and traversals.
Railway Oriented Programming
Scott Wlaschin explains a functional approach to error handling (F#).
Functional Programming Design Patterns
Another talk by Scott Wlaschin where he explains some common functional design patterns.
Other Collections
Functional Programming in Haskell and OCaml by Examples
A collection of tutorials which aim to teach functional programming concepts and patterns by example.
How to learn Haskell
A huge collection of resources for learning Haskell. The Specific topics for Haskell users page is especially useful for understanding specific concepts.