6
在书Functional Programming In Scala中,有一个'Lift'的例子,其中A => B
类型的函数被提升为Option[A] => Option[B]
。Scala中的'提升'功能混淆
这是如何提升实现:
def lift[A,B](f: A => B):Option[A] => Option[B] = _ map f
我对此一对夫妇的混乱:
第一个是,什么是“_”在这里吗?其次,当我从DEF删除返回类型,期待类型推断做它的魔力,我得到以下异常:
scala> def lift[A,B](f: A => B) = _ map f
<console>:7: error: missing parameter type for expanded function ((x$1) => x$1.map(f))
def lift[A,B](f: A => B) = _ map f
有人可以解释这是怎么回事呢?
感谢