我在大学学习 scala,但我无法理解如何使用 map、flatmap 和 Option。这是我实验室的几个函数。我知道如何首先实施,但我不知道如何处理第二个?那么,问题是:如何在不改变其签名的情况下实现第二个功能(使用地图和平面地图)?
def testCompose[A, B, C, D](f: A => B)
(g: B => C)
(h: C => D): A => D = h compose g compose f
def testMapFlatMap[A, B, C, D](f: A => Option[B])
(g: B => Option[C])
(h: C => D): Option[A] => Option[D] = // help