Scala
https://gyazo.com/e871d83f6c4e6ed55906aa37888e2d34
文書
Scala 2
Tour of Scala
Scala Book
Scala 3
Tour of Scala
Scala Book
a.k.a. Dotty
Scala.js
Scala Native
playground
Scala 2、Scala 3 兩對應
libraries
library registry
Maven
async, parallel
Akka
ErlangErlang.icon っぽいものが欲しかったから作ったらしいぞ ZIO
WAF (Web application framework)
RDB (relational database) mapper
Slick
型 level programming
Cats
Scalaz
shapeless
genaric programming
higher rank polymorphism
標準 library だと tuple
shapless だと HList (heterogeneous list)。cons cell HList :: HNil
HList に field 名を持たせると Record。("field 名" ->> 値) :: HNil
標準 library だと case class
Haskell.icon
標準 library だと Either[L, R] や sealed trait
shapeless だと Coproduct (餘積)。cons cell Coproduct :+: CNil Haskell.icon
Slick に組み込む
refined
magnolia
derives typeclasses for case classes, case objects and sealed traits
offers a lightweight syntax for writing derivations without needing to understand complex parts of Scala builds upon Scala 3's built-in generic derivation works with recursive and mutually-recursive definitions
supports parameterized ADTs (GADTs), including those in recursive types
GADT (generalized algebraic data type。first-class phantom type。guarded recursive datatype。equality-qualified type)
supports typeclasses whose generic type parameter is used in either covariant and contravariant positions
$ scalac -Xshow-phases