Here is the list of the available Scala Katas
- Immutability
- Functions and recursion
- Basic usage of immutable Lists (construction, pattern matching)
- Monads
- map, flatMap
- relationship between for comprehension and map/flatMap
- Examples: Lists, Option and Futures
- Level: Intermediate
- Directory: implicits-and-given
- Presentation: slides
- Scala 2 implicits
- Scala 3 'using' and 'given'
- Scala 3 'extension'
- Case classes
- Use Monocle to avoid boilerplate code when updating one Case class field in a tree-like structure
- Level: Intermediate/Advanced
- Directory: typeclass-pattern
- Presentation: slides
- Presentation of the 'type class' pattern
- Implement a 'CartesianProduct' typeclass
- Level: Intermediate/Advanced
- Directory: map-contramap
- Presentation: slides
- Variance
- map and the Functor type class
- contramap and the Contravariant type class
- Level: Advanced
- Directory: IntroToIOs
- Presentation:
- Rules of functional programming
- Effect types
- The Cats effect IO type
- Fibers
- Parallelization
- Level: Advanced
- Directory: fs2
- Presentation:
- Streaming files with fs2
- Streaming a Kafka topic with fs2
- Parallelization
- Fs2 pipes