标签: scalaz applicative
为什么scalaz的Applicative.scala有point方法?
point
trait Applicative[F[_]] extends Apply[F] { self => //// def point[A](a: => A): F[A] // alias for point final def pure[A](a: => A): F[A] = point(a)
也许只有def pure方法没有最终访问者和point?
def pure
答案 0 :(得分:3)
这里有很长的设计决策和历史事故历史。在Scalaz 6中,有一个名为Pure的类型类,另一个名为Pointed(扩展Pure)。那时候没有point方法,只有pure。
Pure
Pointed
pure
然后,Pure和Pointed被丢弃(出于各种原因),point方法被添加到Applicative(过去曾为Pointed加上Apply)。 pure别名被保留了下来,因为历史上这是Scalaz中调用的操作。
Applicative
Apply
当然,您可能只有point(Cats只有pure),并且Scalaz的某些未来版本可能会删除别名。他们只是名字。