Too Long; Didn't Read
I am putting my understanding about functor,Applicative and Monad in Kotlin. I am using Kotlin to explain with examples with examples. A functor is a data structure which acts like a container holding a generic type. Applicative provides abstraction for how to apply a function that takes multiple arguments over multiple values. Functor is useful because they let us use map with collections, replacing for loops. Because Functormap returns another Functor with the result of the function passed to map I can chain multiple map functions together.