applicative相关内容
Java的CompletableFuture是给出其方法thenCompose和thenApply的Monad,其中 对应于Haskell中的>>=(绑定)和fmap。 任何单子都能产生一个应用词。现在,CompletableFuture是否有与Haskell中的(Ap)相对应的方法,或者这样的函数可以用现有方法实现吗? 推荐答案 CompletableFuture没有与Has
..
在Haskell中,应用程序被认为比函数器更强,这意味着我们可以使用应用程序Like来定义函数器 -- Functor fmap :: (a -> b) -> f a -> f b fmap f fa = pure f fa 和Monad被认为比Applicative&;Functor更强,这意味着。 -- Functor fmap :: (a -> b) -> f
..
对于函数monad,我发现()和(>>=)/(=) :: (r -> a -> b) -> (r -> a) -> (r -> b) (= r -> b) -> (r -> a) -> (r -> b) 就像()和(>>=)/(=
..
onSO解释了为什么像scalaz、cat(Scala)或Arrow(Kotlin)这样的验证不能是Monad。 据我所知,这是因为他们根据应用函数器对Monad进行了建模,并且将验证的期望行为作为应用(集合所有无效)与将验证作为Monad的期望行为(序列验证和在第一个无效时快速失败)不同。因此,当您希望快速失败时,需要将验证转换为任一验证(这是一个单体)。 在https://groups
..
阅读http://learnyouahaskell.com/functors-applicative-functors-and-monoids#applicative-functors后,我可以提供一个将函数用作应用函数器的示例: 假设res是一个有4个参数的函数,而fa、fb、fc、fd都是只接受一个参数的函数。那么,如果我没有记错的话,这个实用的表达是: f fa fb
..
由于Functor-Applicative-Monad Proposal,Monad是应用类的子类,而应用类又是函数子类。从数学上讲,这似乎是一个明智的选择,我对此没有任何问题。 然而,令我恼火的是,即使fmap和pure和的相应定律无论如何都是由单子定律固定的,也需要写下函数式和应用实例。事实上,在上面的链接提案中,它们自己写道:&您只需添加以下代码即可从Monad派生这些实例:
..
对于不确定性传播近似 类型,我想通过 Monad 获得 Functor 的实例.然而,这不起作用,因为我需要包含类型的向量空间结构,所以它实际上必须是类的受限版本.因为似乎仍然没有这些标准库(或者有吗?请指点我.有 rmonad,但它使用 * 而不是 Constraint 作为上下文类型,这对我来说似乎已经过时了),我写了 我自己的版本 暂时. 对于 Functor 来说一切都很简单 c
..
如这个问题/答案所述,Functor 实例是唯一确定的(如果它们存在). 对于列表,有两个众所周知的 Applicative 实例:[] 和 ZipList.所以Applicative 不是唯一的(另请参阅GHC 能否为 monad 转换器派生 Functor 和 Applicative 实例?a> 和 为什么没有 -XDeriveApplicative 扩展?).但是,ZipList 需要
..
我一次又一次地读到有效这个词,但我仍然无法清楚地定义它的含义.我假设正确的上下文是有效的计算,但我也看到了术语有效的值) 我曾经认为有效意味着有副作用.但是在 Haskell 中没有副作用(除了某种程度上的 IO).仍然到处都是有效的计算. 然后我读到 monad 用于创建有效的计算.我可以在 State Monad 的上下文中理解这一点.但是我没有在 Maybe monad 中看到任
..
我能够通过以下方式将 Functor 的定义从范畴论映射到 Haskell 的定义:由于 Hask 的对象是类型,因此函子 F 将 Hask 的每个类型 a 映射到新类型 F a ,粗略地说,在它前面加上“F".映射每个态射 a ->Hask 的 b 到新的态射 F a ->F b 使用 fmap :: (a -> b) ->(f a -> f b). 到目前为止,一切都很好.现在我进
..
ZipList 带有一个 Functor 和一个 Applicative 实例 (Control.Applicative) 但为什么不Alternative? 没有好的实例吗? 下面推荐的那个呢? 它有缺陷吗? 没用吗? 是否有其他合理的可能性(比如 Bool 可以在两种方式中成为幺半群),因此它们都不应该是 实例? 我搜索了“instance Alternative ZipLis
..
在他对问题的回答中“类型类 MonadPlus、Alternative 和 Monoid 之间的区别?",Edward Kmett 说 此外,即使 Applicative 是 Monad 的超类,你最终还是需要 MonadPlus 类,因为服从> 空m = 空 不足以证明这一点 empty >>= f = 空 因此,声称某物是 MonadPlus 比声称它是 Alternative
..
给定: Applicative m, Monad m =>mf :: m (a -> b), ma :: m a 这似乎被认为是一项法律: mf ma === do { f
..
我已阅读这篇文章,但没看懂最后一节. 作者说 Monad 为我们提供了上下文敏感性,但仅使用 Applicative 实例就可以实现相同的结果: let mayAge = (\futureYearbirthYear -> if futureYear 没有 do-syntax 肯定更丑,但除此之外,我不明白为什么我们需要 Monad.谁能帮我解决这个问题? 解决方案 这里有几个使
..
Applicative 是一个 Monoidal Functor: mappend :: f ->f->F$ :: (a -> b) ->->乙:: f(a -> b) ->f a ->fb 但是我在 Applicative 类型类的定义中没有看到任何关于 Monoid 的参考,你能告诉我为什么吗? 定义: class Functor f =>适用 (f :: * -> *) 其
..
Learn You a Haskell 的第 11 章介绍了以下定义: instance Applicative ((->) r) 其中纯 x = (\_ -> x)f g = \x ->f x (g x) 在这里,作者进行了一些不寻常的挥手(“ 的实例实现有点神秘,所以最好我们只是 [在行动中展示它而不解释它]").我希望这里有人能帮我弄清楚. 根据应用类定义,()::f(
..
我试图通过在 Javascript 中实现它们的函数实例来提高我对 Applicative 和 Monad 的理解.我对 Haskell 的了解有限,我希望我的问题完全有意义. 这里是我对 Functor、 和 >>= 的实现Javascript 中的 code>、Applicative 和 Monad 类型类: const fmap = f =>g=>x =>f(g(x));//B
..
我到处都看到 Applicative 可以处理副作用,但我看到的所有简单示例都只是将以下内容组合在一起: >(,,) [1,2] ["a", "b", "c"] ["foo", "bar"][(1,"a","foo"),(1,"a","bar"),(1,"b","foo"),(1,"b","bar"),(1,"c","foo"),(1,"c","bar"),(2,"a","foo")
..
我目前正在阅读 Learn You a Haskell for Great Good!并且在对某个代码块的评估的解释上磕磕绊绊.我已经读了好几遍解释,我开始怀疑连作者是否理解这段代码在做什么. ghci>(+) (+3) (*100) 5 美元508 应用函子将某些上下文中的函数应用于某些上下文中的值,以在某些上下文中获得某些结果.我花了几个小时研究这个代码块,并就如何评估这个表达式提出
..
替代方案是Applicative的扩展,声明了empty、和这两个函数:> 一个或多个: some :: f a ->F A] 零个或多个: many :: f a ->F A] 如果定义了,some 和 many 应该是方程的最小解: some v = (:) v 许多 v许多 v = 一些 v 纯的 [] 我找不到定义了 some 和 many 的实例.它们的含义和实际用途
..