Saturday, February 23, 2013

Learning Scalaz 7 in 18 Days - A synopsis of eed3si9n's wonderful posts

Learning Scalaz in 18 Days was a wonderful series of posts on eed3si9n's blog; however, without a table of contents there I wanted a central place where I could access it and thus this.  I also threw in a few more related resources for good measure.  Besides, this allows me to add an updated post on my own blog without having to actually go to the effort of writing anything original! :-)

Prep/additional material

Ordesky's Scala book - Covers the basics and is a good reference.

Learn You a Haskell for Great Good! - irreverent/fun intro to Haskell and, more important in this context, learning about the concepts and terminology of functional programming.  So much of Scalaz concepts and terminology (not to mention the code itself) is based on a Haskell-centric view of FP that knowing at least the basics of the Haskell ecosystem is, in my opinion, crucial.

Scalaz Resources for Beginners - A good index to scalaz resources

Introduction to Category Theory and the follow-up, Applicatives are generalized functors

Scala In Depth - Great for understanding Scala's type system and standard collections library, functional programming concepts, and much more.  The best Scala book, IMHO

Functional Programming in Scala Early Access Book - Great background in functional programming with many of the examples and concepts mirroring Scalaz (appropriate since the authors are two of the main Scalaz committers)

Monadic Design Patterns for the Web  - Actually, I'd recommend reading this *after* absorbing the rest of the material on this page: it's not for the faint of heart and assumes quite a bit of knowledge around advanced functional programming, logic and abstract algebra concepts but it's really worth getting through.

High Wizardry in the Land of Scala - Daniel Spiewak's wonderful talk on typeclasses, types and kinds, and more.

Extreme Cleverness - Functional Data Structures in Scala - Daniel Spiewak's great talk on persistent data structures.

BASE Scalaz Talk - Bay Area Scala Enthusiasts talk from Adam Rosien of Box.

Scalaz Cheatsheet

Scalaz Scaladoc

Mike Pilquist's Scalaz Overview Presentation

Mike Pilquist's Scalaz State Monad Presentation

Advanced Stream Processing - A talk on advanced stream processing given by Scalaz commiter Paul Chiusano at NE Scala 2013

Debasish on Monad Transformers

Precog Blog: Monad Transformers with Scalaz

Stackless Scala with Free Monads

The Essence of the Iterator Pattern

Enumeration with the Iteratee

Runar on Scalaz (Infoq)

Precog Blog: Abstracting over Futures with Scalaz

Learning Scalaz 7 in 18 Days

Day 1 - Typeclasses 101

Day 2 - Functors

Day 3 - Types and Kinds

Day 4 - Functor Laws

Day 5 - Monads

Day 6 - for comprehensions

Day 7 - Applicatives and Applicative Builders

Day 8 - Monadic functions

Day 9 - Zippers and Tree

Day 10 - Monad Transformers

Day 11 - Lenses

Day 12 - Folding, Unfolding, Traversal and Iterators

Day 13 - Implicits and scalaz imports

Day 14 - Giving back: contributing to scalaz

Day 15 - Misc typeclasses (Arrow, Category, Unapply, etc.)

Day 16 - Memoization

Day 17 - IO Monads and Iteratees

Day 18 - Free Monads