Scala 这是什么意思';lift与map';几乎相同;?
莱昂纳多·博尔赫斯(Leonardo Borges)写了一篇很好的帖子,名为 他在信中评论说: 马克向我指出,lift和map几乎一样,只是参数相反 这意味着:Scala 这是什么意思';lift与map';几乎相同;?,scala,map,functional-programming,lifting,Scala,Map,Functional Programming,Lifting,莱昂纳多·博尔赫斯(Leonardo Borges)写了一篇很好的帖子,名为 他在信中评论说: 马克向我指出,lift和map几乎一样,只是参数相反 这意味着: val f = Functor[Option].lift(parts) compose make 可以重构为: val g = make(_:Int).map(parts) 我的问题是,升力与地图几乎相同是什么意思?来自: defmap[A,B](fa:F[A])(F:A=>B):F[B] def lift[A,B](f:A=>B)
val f = Functor[Option].lift(parts) compose make
可以重构为:
val g = make(_:Int).map(parts)
我的问题是,升力与地图几乎相同是什么意思?来自:
defmap[A,B](fa:F[A])(F:A=>B):F[B]
def lift[A,B](f:A=>B):f[A]=>f[B]=map(uz)(f)
注意:lift只是根据map定义的(颠倒参数)
大多数情况下,当人们从函数式编程开始时,他们会将
map
作为一个函数映射到一系列事物上,但是map
通常是一个与functor相关的更抽象的概念。我甚至更愿意说map
只是一个翻转的lift
。斯卡拉是我所知道的唯一使用这种论据的语言:考虑Python的<代码> map <代码>,Haskell的<代码> FMAP,Lisp的<代码> MAPCAL>代码>…它们都是按lift的顺序排列的。这可能是因为Scala倾向于使用中缀符号。