1

Leonardo Borges 写了一篇很棒的文章,名为“Functional Composition With Monads, Kleislis and Functors”

他在其中评论道:

Mark 向我指出 lift 与 map 几乎相同,但参数相反。

这意味着:

val f = Functor[Option].lift(parts) compose make

可以重构为:

val g = make(_:Int).map(parts)

我的问题是,“电梯与地图几乎相同”是什么意思?

4

1 回答 1

3

scalaz 函子代码

def map[A, B](fa: F[A])(f: A => B): F[B]

def lift[A, B](f: A => B): F[A] => F[B] = map(_)(f)

注意:lift 只是根据 map 定义的(颠倒参数)

大多数情况下,当人们开始使用函数式编程时,他们被介绍map为将函数映射到一系列事物上,但map通常是与函子相关的更抽象的概念。

于 2014-06-23T06:09:26.043 回答