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(

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


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

Get Learn Scala Programming now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.