Training | Functional Programming Fundamentals with Scala and Cats

Training about how to learn advanced functional programming concepts in Scala using the cats library.

16 hours
fundamentals

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

Are you interested in scheduling this training for your company?

Contact us

Are you interested in attending a public training course?

Contact us

Alexandru Simonescu

“I’ve been developing software for more than ten years, and I think that learning functional programming through this training opened my mind and gave me more tools to solve my daily tasks in a more efficient way.”

Ilia Berlana

“This training was amazing. It gave me a new point of view about programming. I’ve been programming in Java for ten years in the backend on Android, and my next challenge is Kotlin, and this training helped me a lot.”

Juan Carlos García

“I’m very happy because I learned a lot, and I got some new tools I can use in my work day-to-day.”