A Crash Course in Functional Scala

Learn how functional Scala enables you to write better code, with high productivity and testability.

Book a Training

Overview

Many Scala developers are comfortable working with immutable data, pattern matching, and recursion. Yet beyond these introductory topics lies many more powerful concepts and techniques from functional Scala, which together enable the construction of powerful and type-safe applications that could not be written in Java or other non-functional languages.

In this course, developers will learn select topics from Functional Data Modeling, Functional Design, and Functional Effects. This trio of topics, covered at high-speed and with extreme focus, will help Scala developers who already know basic functional programming to take their knowledge and skills to the next level, as they see first-hand how functional Scala enables them to write better code, with high productivity and testability.

Are you interested in attending a private training course?

Register for Private Training

Are you interested in attending a public training course?

Register for Public Training

Who Should Attend

Scala developers who would like to apply functional programming to more of their code base, or begin using functional Scala libraries.

Prerequisites

Good working knowledge of Scala, including familiarity with immutable data, pattern matching, and basic recursion. Developers who have attended Functional Scala Foundations will be well-prepared for this course.

Topics

  • Polymorphism in functional data modeling
  • Using generalized algebraic data types for increased type-safety
  • Using declaration-site variance for better ergonomics
  • Extracting domain elements and operators from business problems
  • Designing composable, orthogonal, minimal operators
  • Translating domain solutions into general solutions
  • Describing side-effects with values
  • Using functional programming “in the large” over a whole app
  • Leveraging functional effects for increased productivity
TESTIMONIAL
Last year, we started using ZIO, as a superior alternative to tagless-final and Monad transformers. ZIO is a powerful effect monad with a lot of combinators, interop with important libraries, and new integrations with OpenTracing and logging. ZIO lets us focus on our business logic, making it easier to understand and test, and there is no doubt ZIO will be one of the significant parts of Scala infrastructure over the coming years!
Jan de Groot
DHL Parcel Netherlands - Head of Development

Related Courses

A Crash Course in Functional Scala

Learn how functional Scala enables you to write better code, with high productivity and testability.

# fp
24 hours

Functional Design

Learn how to benefit from functional programming techniques across your application, in a way that’s highly accessible to the whole team and new hires.

# fp
24 hours

Functional Effects

Learn how to solve complex problems in asynchronous, concurrent programming using the ZIO library.

# fp
24 hours

Book a Training