【发布时间】:2014-12-04 03:45:29
【问题描述】:
Applicative Programming with Effects,来自 McBride 和 Paterson 的论文,提出了交换律:
u <*> pure x = pure (\f -> f x) <*> u
为了理解它,我尝试了以下示例 - 表示左侧。
ghci> Just (+10) <*> pure 5
Just 15
如何使用右侧编写此示例?
另外,如果u 是f (a -> b),而f 是Applicative,那么右侧的函数是什么:pure (\f -> f x) ...?
【问题讨论】:
-
直觉一下,因为
pure没有效果,在u <*> pure x和pure ($ x) <*> u中,唯一有效的部分是u,所以你离开也没关系-或者在没有任何效果的情况下右组合它。
标签: haskell