Applicative

With functor, we now have a convenient way to apply functions to the contents of an effect, regardless of the type of the effect itself. We were able to check the fish and cook it by applying the same logic we had for an effect-free fish. To get even more comfortable with functors, we will now make a fish pie with our new tool.

First, we'll define a function to make a pie from a single fish:

final case class FishPie(weight: Int)import ch08.Model._def bakePie(fish: FreshFish, potatoes: Int, milk: Float): FishPie = FishPie(fish.fish.weight)

That was easy—one fish, one pie, with the size of the fish. Now, we are ready to bake every fish in the bucket:

mapFunc(listOfFishGen.sample.get)(bakePie)

Oops! This won't compile because the ...

Get Learn Scala Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.