This repo contains the notes of the functional programming hotbed of research of the Universidad EAFIT.
This is intended to be a simple introductory tutorial to Scala in general and to Functional Programming
(using the Typelevel stack) in it.
scalaintro
This package contains notes for introduction to the Scala Programming Language.ScalaNotes.scala
Basic introduction to the language.ImplicitsNotes.scala
Introduction to the implicits mechanism of Scala (includes ValueClasses too).SubtypeNotes.scala
Variance, Type bounds & Generalized type constraints.TypeclassesNotes.scala
Simple introduction to the typeclass pattern in Scala.
catsintro
This package contains notes for introduction to the Cats library for Functional Programming.MonoidNotes.scala
Semigroup & Monoid notes.FunctorNotes.scala
Covariant, Contravariant & Invariant Functor notes.MonadNotes.scala
Monad notes - Id, Error, Eval, Writer, Reader & State Monads notes - Monad Transformers notes.ApplicativeNotes.scala
Applicative & Validated notes.TraverseNotes.scala
Foldable & Traverse notes.
catscases
This packages contains the solutions to case studies of Scala with Cats book. (pending)iointro
This package contains notes for introduction to the Cats-Effect library for Effects. (pending)
The following is a list of bibliographic material used for this tutorial.
- Underscore - Scala with Cats, Book. https://underscore.io/books/scala-with-cats
- Typelevel - Cats, Website. https://typelevel.org/cats
- Typelevel - Cats Effect, Website. https://typelevel.org/cats-effect
- Rob Norris (tpolecat) - Cats Infographic, Image. https://github.com/tpolecat/cats-infographic
- Rob Norris (tpolecat) - Functional Programming with Effects, Conference. https://slideslive.com/38908886/functional-programming-with-effects
- Rob Norris (tpolecat) - Introduction to Typeclasses in Scala, Blog. https://tpolecat.github.io/2013/10/12/typeclass.html
- Scala Lang - Scala Standard Library - API, Scaladoc. https://www.scala-lang.org/api/current
- Scala Lang - Tour of Scala, Docs. https://docs.scala-lang.org/tour/tour-of-scala.html
- Scala Lang - Where Does Scala Look For Implicits?, Docs. https://docs.scala-lang.org/tutorials/FAQ/finding-implicits.html
- Scala Lang - Value Classes, Docs. https://docs.scala-lang.org/overviews/core/value-classes.html
- Scala Lang - Implicit Classes, Docs. https://docs.scala-lang.org/overviews/core/implicit-classes.html
- Daniel C. Sobral - Difference between method and function in Scala, StackOverflow Answer. https://stackoverflow.com/a/2530007/4111404
- Erik Bruchez - Generalized type constraints in Scala (without a PhD), Blog. https://blog.bruchez.name/2015/11/generalized-type-constraints-in-scala.html
- Scala Community - A relaxed chat room about all things Scala, Gitter Channel. https://gitter.im/scala/scala