Learn about how functional combinators work from first principles. This lesson covers the topic with many examples and exercises written in Scala.

This lesson explores introductory tricks and approaches in the field of functional programming by digging into countless examples of real-world applications of first-order functions, algebraic data types, laziness, and more.

This lesson covers the confusing topic of currying and partial function application by using examples from mathematics and Scala. We start our exploration from first principles and then slowly transition from the math behind currying and partial function application to real-world examples.

Scala is often thought of as a functional programming language when in fact it's a hybrid language with a wealth of object-oriented abstractions that are often more robust than traditional Java implementations. This lesson digs deep into what's behind Scala's object-oriented structures like traits, case classes, and others.