This presentation provides an introduction to functional programming. It aims to develop intuition behind the big ideas of functional programming and includes several examples in Haskell. Since the best way to learn is by doing, there are also some exercises to help you start thinking like a functional programmer.
If you would like to learn more about functional programming, I highly recommend UPenn's CIS 194 class (linked below). I have also included a number of additional links that you may find interesting.
- UPenn CIS 194: Introduction to Haskell
- NICTA Functional Programming Course
- Stanford CS240h: Functional Systems in Haskell
- edX: Introduction to Functional Programming
- Learn You a Haskell for Great Good!
- Real World Haskell
- Haskell Programming from First Principles
- Wikibooks: Haskell
- Coursera: Functional Programming Principles in Scala
- Functional Programming in Scala
- Fundtional Programming in Scala Repository
- Organizing Programs Without Classes
- Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
- Equal Rights for Functional Objects or, The More Things Change, The More They Are the Same
- Optimal Purely Functional Priority Queues
- Why Functional Programming Matters
- Backtracking Iterators
- Breadth-First Numbering: Lessons from a Small Exercise in Algorithm Design
- Concatenative Programming: An Overlooked Paradigm in Functional Programming
- Crossing the Gap from Imperative to Functional Programming through Refactoring
- Universality and Expressiveness of Fold
- Functional Principles for Object-Oriented Developers by Jessica Kerr [51:13]
- Adventures in Functional Programming by Jim Weirich [50:34]
- Deconstructing Functional Programming by Gilad Bracha [48:33]
- Living in a Post-Functional World by Daniel Spiewak [45:46]
- Extreme Cleverness: Functional Data Structures in Scala by Daniel Spiewak [39:24]
- Tangible Functional Programming by Conal Elliott [56:24]
- Faith, Evolution, and Programming Languages by Phillip Wadler [1:06:53]
- Don't fear the Monad by Dr. Brian Beckman [1:07:10]
- Functional Programming Design Patterns by Scott Wlaschin [1:49:10]
- Domain modelling with the F# type system by Scott Wlaschin [1:03:40]
- Propositions as Types by Philip Wadler [42:42]
- Functional is cool, but do you know OO by Sandro Mancuso [54:41]
- Stop Writing Classes by Jack Diederich [27:29]