【发布时间】:2014-02-01 15:21:29
【问题描述】:
阅读此article 后,我了解到>=>(Kleisli 箭头)只是组合函数的高阶函数,它返回“一元值”。例如:
它看起来像是“简单”函数(即返回简单值的纯函数)的简单组合:
val f: A => B = ... val g: B => C = ... val h = f 然后 g; // 合成 f 和 g现在我猜这个“简单”的组合 andThen 符合某些法律
-
身份:
f andThen g == g和g andThen f == g用于 身份 功能:f[A](a:A):A = a -
关联性:
(f1 andThen f2) andThen f3==f1 andThen (f2 andThen f3)
现在我的问题是:
-
>=>是否符合那些身份 为f(a:A) = M[a].unit(a)的法律? - 我们能从这些定律中推导出一元定律吗?这些定律和一元定律是否等效?
【问题讨论】:
标签: scala functional-programming monads kleisli