
In recent years, all the new programming languages that have emerged include more or less prominent functional features. We all start by using a filter, then a map, flatMap, reduce... at first, it seems easy!
Then we try to learn concepts like monad, functor, monoid, applicative... we read a tutorial here, a blog post there... and after all, we think "I'm never going to understand this."
And I have to tell you—it’s not that hard, you're just using the wrong approach: to understand what a monad is, you have to create your own monad. Then a second one, a third... and voilà, you understand what you're doing, even if no one has actually explained it to you.
In this course, you’re going to do exactly that: understand the concepts of functional programming in a 100% practical way, with exercises in Kotlin. That way, you’ll immerse yourself in it, internalize it, and by the end of the day, you’ll know what a monad is (and a functor, a monoid, an applicative...) even if you’re not quite sure how you ended up learning it.
This course is focused is the most obscure part of the functional programming: the functional abstractions, or as we call them: functional patterns.
Monoid
Semi-group
Monad
Applicative
Don’t hesitate—functional programming is one of the few disciplines that will truly change the way you think, and that will make you a much more valuable programmer than someone who only knows the latest trendy framework.
IMPORTANT: this course is the advanced part of the course "Functional Programming in Kotlin: to monads and beyond!"