Functional programming – monads
Functional programming is incomplete without monads. If you are into functional programming, then you know it very well; otherwise, you are hearing it for the first time. So, what is a monad? Let's learn about it. The concept of monad is quite abstract; the definition says monad is a structure that creates a new type by encapsulating a value and adding some extra functionalities to it. So, let's start by using a monad; take a look at the following program:
fun main(args: Array<String>) {
val maybeValue: Maybe<Int> = Maybe.just(14)//1
maybeValue.subscribeBy(//2
onComplete = {println("Completed Empty")},
onError = {println("Error $it")},
onSuccess = { println("Completed with value $it")}
)
val maybeEmpty:Maybe<Int> = Maybe.empty()//3
maybeEmpty.subscribeBy(
onComplete = {println("Completed Empty")},
onError = {println("Error $it")},
onSuccess = { println...