Scala resources
Here is the list of my favorite articles collected during my 10 years of language practice.
Best practices
- Why are Default Parameter Values Considered Bad in Scala?
- try-with-resources
- scala-best-practices
- ADT
- referential transparency
Type System
Awesome overview
- Kinds of types in Scala, A master piece, highly recommended read
- Scala’s Types of Types
- Types in Scala
Specific topics
- Phantom Types in Scala phantom types never get instantiated. They are used to encode type constraints.
- Type members are [almost] type parameters type members VS type parameters.
- When are two methods alike?
- A short introduction to the
Aux
pattern a trick to overcome a limitation with path dependent type. - Generalized Algebraic Data Types in Scala
- Returning the “Current” Type in Scala An F-bounded type is parameterized over its own subtypes.
trait Pet[A <: Pet[A]]
. And also subtyping VS ad-hoc polymorphism. - Fake Theorems for Free why you should not use
Object#equals
andObject#hashCode
- Compiler plugin for making type lambdas (type projections) easier to write
- Generalized type constraints in Scala (without a PhD), About
<:<
and=:=
syntax - Avoiding Unnecessary Object Instantiation with Specialized Generics,
@specialized
- Type classes in Scala
- Generics of a Higher Kind
- Overcoming type erasure in Scala
Category theory
- Functors, Applicatives, And Monads In Pictures
- The Essence of the Iterator Pattern
- Free Monoids and Free Monads
- Monoid Morphisms, Products, and Coproducts
- A tale on Semirings
- How can we map a Set?, on coyoneda
Advanced - Free monad VS tagless final
- Stackless Scala With Free Monads
- On Free Monads
- Introduction to Tagless final
- Exploring Tagless Final pattern for extensive and readable Scala code
Concurrency
- An IO monad for cats
- Shared State in Functional Programming
- Why should you care about RT
- Thread Pools
- Talk - Intro to Cats-Effect (Gavin Bisesi)
- Talk - The Making of an IO - Daniel Spiewak
Various
- Implicit Design Patterns in Scala
- Scrap Your Cake Pattern Boilerplate: Dependency Injection
- A brief tour of Scala: two classic problems, Fibonacci …
Blogs
- Runar Bjarnason, author of Functional Programming in Scala
- Rob Norris a.k.a. tpolecat, author of doobie
- Li Haoyi, author of ammonite
- Eric Torreborre, author of specs2
- Travis Brown, author of circe
- Typelevel, the blog of the typelevel organization
- Erik Bruchez
- Jonas Boner, CTO of Lightbend
- Debasish Ghosh, author of Functional and Reactive Domain Modeling
- Adam Warski, R&D at SoftwareMill
- Eugene Yokota, sbt core dev
- Mateusz Kubuszok, author of chimney
- Gabriel Volpe, author of Practical FP in Scala
- Alexandru Nedelcu, author of monix
- Nicolas Rinaudo, awesome speaker