Skip to content

Instantly share code, notes, and snippets.

@miguel-vila
Last active December 25, 2015 09:09
Show Gist options
  • Save miguel-vila/6951602 to your computer and use it in GitHub Desktop.
Save miguel-vila/6951602 to your computer and use it in GitHub Desktop.

Advanced Scala:

Monad intros:

  1. A nice intro: Scala Monads: Declutter Your Code With Monadic Design [YouTube]

Some monads:

  1. Scalaz State Monad
  2. Reader Monad for dependency injection

Typeclasses:

A stronger form of generics.

  1. This one explains the Scala's typeclass pattern. Also it has a nice (final) reflection on subtype polymorphism vs ad-hoc polymorphism (via pattern matching) and how the former decouples better: Tutorial: Typeclasses in Scala [YouTube]
  2. Scala Typeclassopedia [YouTube]. The presentation.

Higher-kinded types:

Type systems classify values.

Kind systems classify types.

Values are to types as types are to kinds.

  1. A little too theoretical but it may be useful as an intro : From Functions to Monads in Scala
  2. What's the difference between A<:B and +B?
  3. Covariance and Contravariance in Scala
  4. A nice question: What does “abstract over” mean?
  5. High Wizardry in the Land of Scala [Vimeo]

Monad Transformers:

  1. The justification: Monads do not compose
  2. Monad Transformers in Scala
  3. Monad Transformers in Scalamachine & Scaliak [YouTube]

Scalaz:

  1. Intro to Scalaz [Vimeo]
  2. Scalaz Presentation[Vimeo]

Others a little more theoretical:

  1. Functors, Applicatives, And Monads In Pictures
  2. Category Theory & Programming
  3. Introduction to cathegory theory
  4. Not so sure about this one, but it is Scala oriented: Monads Are Not Metaphors
  5. A monad is just a monoid in the category of endofunctors, what's the problem?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment