Functional Programming in Kotlin: to monads and beyond!

Learn functional programming by doing, and bright in your job interviews

Functional Programming in Kotlin: to monads and beyond!
Functional Programming in Kotlin: to monads and beyond!

Functional Programming in Kotlin: to monads and beyond! free download

Learn functional programming by doing, and bright in your job interviews

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.

Besides these "advanced" concepts, we’ll also cover ideas you probably already know, but that are fundamental in functional programming: recursion (did you know that any iterative algorithm with a loop can be rewritten in a recursive way?), functions (you’ll see they can do much more than how you usually use them), and of course, the typical functional transformation functions: filter, map, reduce (fold) and others.

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.