我在大学学习 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
函数的结果
testMapFlatMap
是函数Option[A] => Option[D]
。因此,您可以编写:在这个函数中,输入参数是
Option
。和函数是为Option
scala 标准库中的类型定义的。flatMap
map
签名:
flatMap
_Option
签名:
map
_Option
使用上述所有内容,您可以实现该功能
testMapFlatMap
: