【发布时间】:2012-12-14 12:53:52
【问题描述】:
我一直在研究great good 这本书,但我在使用 Applicative Functors 时遇到了一些困难。
在以下示例中,max 应用于两个 Maybe 函子的内容并返回 Just 6。
max <$> Just 3 <*> Just 6
为什么在以下示例中返回 Left "Hello" 而不是 Either 函子的内容:Left "Hello World"?
(++) <$> Left "Hello" <*> Left " World"
【问题讨论】:
-
这是 Either 的传统用法,Right 代表您感兴趣的值,而 Left 代表失败。 Right(正确)值可以使用 Applicative 和 Functor 组合和修改,而 Left over bad 值会顽固地持续存在,因此它适用于像简单编译器那样报告第一个错误之类的事情。
标签: haskell functor either applicative