Leonardo Borges写了一篇名为"Functional Composition With Monads, Kleislis and Functors"的优秀文章。
在其中他评论道:
马克向我指出,电梯与地图几乎相同,但论点相反。
这意味着:
val f = Functor[Option].lift(parts) compose make
可以重构为:
val g = make(_:Int).map(parts)
我的问题是,'电梯与地图差不多是什么意思?'
答案 0 :(得分:3)
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)
注意:电梯只是根据地图(反转参数)来定义
大多数人开始使用函数式编程时,会将map
作为一个函数映射到一系列事物,但map
通常是一个与仿函数相关的更抽象的概念。