This course is the continuation of the “Functional Programming Fundamentals with Scala and Cats” course and explores more advanced techniques in functional programming using Scala and Cats.
Over a year of experience in Scala or any other functional programming language.
What you'll learn
The first section of this course covers the core concepts of Functional Programming:
- Higher-Order Functions
- Currying and partial application
- Referential Transparency
- Lazy Evaluation
We’ll review main type classes from the Cats library:
Then, we’ll learn some advanced topics in regards to cats and cats-effect like:
- Free Algebras
- Effects and some of the related data types and typeclasses like IO, SyncIO, Fiber, Resource, Clock ContextShift, Timer, Bracket, Effect, ConcurrentEffect, etc.
- Concurrency and Parallelism: Deferred, MVar, Ref, Semaphore.
Finally, we’ll apply all of the concepts covered above in real domains, like:
- Asynchronous computations
- Database persistence
- HTTP communications.