A roadmap for learning functional programming with Haskell - and beyond.
- How is it that people learn and gain intuition for abstraction?
- They begin with the concrete, and move to the abstract.
- By examining concrete objects in detail, one begins to notice similarities and patterns, until one comes to understand on a more abstract, intuitive level.
- Most people don’t “get it” immediately: it is only after examining some specific instances of the definition, and working through the implications of the definition in detail, that one begins to appreciate the definition and gain an understanding of what it “really says.”
- The critical role that struggling through fundamental details plays in the building of intuition.
(Source)
- Main Resources
- Recommended Path for learning Haskell (github...bitemyapp/learnhaskell)
- "CIS 194: Introduction to Haskell (Spring 2013)" course (seas.upenn.edu/~cis194/spring13)
- NICTA FP course (https://github.com/NICTA/course)
- Haskell Programming from first principles - book (http://haskellbook.com)
- CS240h: Functional Systems in Haskell (...scs.stanford.edu/11au-cs240h)
- SICP - Structure and Interpretation of Computer Programs (https://mitpress.mit.edu/sicp)
- Software Foundations (https://www.cis.upenn.edu/...)
- Further Reading
- Videos
###Adventure with Types in Haskell - Simon Peyton Jones lectures
- Lecture 1 (part 1 * part 2 * part 3 | Youtube)
- Lecture 2 (part 1 * part 2 | Youtube)
- Lecture 3 (part 1 * part 2 * part 3 | Youtube
- Lecture 4 (part 1 * part 2 * part 3 | Youtube(broken??))
- Podcasts
[TBD]