Overview
This course covers advanced functional programming concepts using Cats, a library which provides abstractions for functional programming in the Scala programming language.
In this introductory course, we’ll review the primary concepts used in functional programming including monoids, semigroups, functors, and monads, and, while using Cats, we’ll learn about the main type classes and datatypes.
Prerequisites
One year of experience in Scala or any other Functional Programming Programming language.
What you'll learn
Key Functional Programming concepts:
- Introduction to Functional Programming in Scala with Cats
- Pure Functions
- Referential Transparency
- The Substitution Model
- Higher Order Functions
Domain modeling with Algebraic Data Types:
- Data classes and product types
- Sealed classes and co-product types
How to express abstractions using type classes from the Cats library:
- Monoid
- Semigroup
- Functor
- Applicative
- Monad
How to use type classes to solve practical problems in different domains:
- Error Handling and Data validation
- Dependency injection
- Managing the state of your program