Functional programming (FP) is about compositionality and equational reasoning. Due to these fundamental properties, FP is becoming one of the mainstream programming paradigms.
However, on the path of learning FP paradigm, we often get stuck with different abstractions such as Functor, Applicative, Monad and so on. That brings to this talk on the essence of functional structures. In this talk, we introduce concepts necessary to master the mostly-used functional structures, outline their core essences, and discuss intuitions on how to apply them in solving problems in a purely functional manner.
From scratch, we will construct the type classes to represent these structures in Scala. Starting with basic constructs such as Monoid, we will continue exploring structures such as Functor, Applicative, Monad, Foldable and finally, Traversable. Alongside, from the practical point of view, we will dive into the essence of these structures in encoding pure functional programs that are robust, comprehensible and correct-by-construction.
As an audience, I would get a comprehensive overview of several functional abstractions, learn about their core strengths and limitations and see how to use them in solving problems. No prior knowledge of advanced functional programming is assumed in this talk.