The definitive guide to learning functional programming

Functional programming in Scheme family languages:

  • Structure and Interpretation of Computer Programs by Ableson, Sussman and Sussman (MIT Scheme) - probably a book that needs no introduction
  • How to Design Programs by Felleisen, Findler, Flatt and Krishnamurthi (uses the Teaching Languages, a subset of Racket) - a textbook for complete beginners about how to approach programming problems in a structured, organized and data-driven way using functional programming techniques
  • The Little Schemer by Friedman and Felleisen (Scheme) - an introduction to Scheme and functional programming presented as a dialogue between a student and a teacher
  • The Little Typer by Friedman and Christiansen (uses Pie) - a followup to The Little Schemer that introduces dependent types

OMG, I <3 that

"Encapsulation only means: “well I’m in charge of this mess.”

Rich has a lot of those insights. Even if you are not interested in Clojure, there is a lot to take away from his talks.

A bit early in the year for this but there has been an F# advent calendar in Japan for many years now. Each day in December features two new articles about F#.
The English version started in 2014, the most recent edition is here