Slide 239
Slide 239 text
Option (Applicative Builder)
val maybeEspresso: Option = Option(Espresso(0.3))
val maybeMilkOption: Option = Option(Milk(0.3))
val foamOption: Option = Option(Foam(0.3))
Option.applicative()
.map(maybeEspresso, maybeMilk, maybeFoam) { (espresso, milk, foam) ->
Cappuccino(espresso, milk, foam)
}.fix()
// Some(Cappuccino(espresso=Espresso(%=0.3), milk=Milk(%=0.3),
// foam=Foam(%=0.3)))