【发布时间】:2013-06-19 19:51:32
【问题描述】:
在Functional Programming In Scala 书中,有一个“提升”示例,其中A => B 类型的函数被提升为Option[A] => Option[B]。
这就是提升的实现方式:
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
有人能解释一下这里发生了什么吗?
谢谢
【问题讨论】:
标签: scala type-inference higher-order-functions map-function lifting