Understanding Monads
Monads in Scala are design patterns used to handle computations like chaining operations and managing side effects.
Option Monad
val result = Some(2).map(x => x * 2).flatMap(x => Some(x + 1))
println(result) // Some(5)
For-Comprehension
val res = for {
a <- Some(2)
b <- Some(3)
} yield a + b
println(res) // Some(5)
Monads abstract over computation context (e.g., Option, Future).