Applying Functional Programming practices in your code can quickly lead to heated debates: Hard-core FP advocates strive for the hegemony of ‘functions everywhere,’ whereas more conservative developers want to stay far away from the abstractions and complexity they add. The question is, who is right?
Drawing on my rich experience with FP, I will share my learnings with numerous teams I have led and coached over the years with the quest to unleash the potential FP offers while avoiding the pitfall of blindly proclaiming functions as the silver bullet to everything.
With many live-coded examples, we will explore the benefits of various functional concepts, ranging from basic higher-order functions, function composition, and Monads rigidly focusing on practical problems they solve rather than getting lost in academic considerations. Along the way, you will get a line-up of all the functional features Kotlin offers as well as the goodies functional libraries such as Arrow have in store.
Ultimately, we want to create code that our colleagues love to maintain and extend, for which FP should be a friend rather than a burden. At the end of this talk, you will have the recipe for accomplishing this quest.