applicative相关内容

在绑定方面,如何定义应用?

在Haskell中,应用程序被认为比函数器更强,这意味着我们可以使用应用程序Like来定义函数器 -- Functor fmap :: (a -> b) -> f a -> f b fmap f fa = pure f fa 和Monad被认为比Applicative&;Functor更强,这意味着。 -- Functor fmap :: (a -> b) -> f ..
发布时间:2022-04-20 14:24:58 其他开发

为什么验证会违反单一律?

onSO解释了为什么像scalaz、cat(Scala)或Arrow(Kotlin)这样的验证不能是Monad。 据我所知,这是因为他们根据应用函数器对Monad进行了建模,并且将验证的期望行为作为应用(集合所有无效)与将验证作为Monad的期望行为(序列验证和在第一个无效时快速失败)不同。因此,当您希望快速失败时,需要将验证转换为任一验证(这是一个单体)。 在https://groups ..
发布时间:2022-04-20 13:55:12 其他开发

阅读器单体可以做什么是应用程序功能不能做的?

阅读http://learnyouahaskell.com/functors-applicative-functors-and-monoids#applicative-functors后,我可以提供一个将函数用作应用函数器的示例: 假设res是一个有4个参数的函数,而fa、fb、fc、fd都是只接受一个参数的函数。那么,如果我没有记错的话,这个实用的表达是: f fa fb ..
发布时间:2022-04-20 13:45:47 其他开发

Monad定义中的样板代码

由于Functor-Applicative-Monad Proposal,Monad是应用类的子类,而应用类又是函数子类。从数学上讲,这似乎是一个明智的选择,我对此没有任何问题。 然而,令我恼火的是,即使fmap和pure和的相应定律无论如何都是由单子定律固定的,也需要写下函数式和应用实例。事实上,在上面的链接提案中,它们自己写道:&您只需添加以下代码即可从Monad派生这些实例: ..
发布时间:2022-04-20 13:41:58 其他开发

关于应用,而不是“组合",真正的应用有多少?

对于不确定性传播近似 类型,我想通过 Monad 获得 Functor 的实例.然而,这不起作用,因为我需要包含类型的向量空间结构,所以它实际上必须是类的受限版本.因为似乎仍然没有这些标准库(或者有吗?请指点我.有 rmonad,但它使用 * 而不是 Constraint 作为上下文类型,这对我来说似乎已经过时了),我写了 我自己的版本 暂时. 对于 Functor 来说一切都很简单 c ..
发布时间:2021-12-14 12:41:53 其他开发

Applicative/Monad 实例在多大程度上是唯一确定的?

如这个问题/答案所述,Functor 实例是唯一确定的(如果它们存在). 对于列表,有两个众所周知的 Applicative 实例:[] 和 ZipList.所以Applicative 不是唯一的(另请参阅GHC 能否为 monad 转换器派生 Functor 和 Applicative 实例?a> 和 为什么没有 -XDeriveApplicative 扩展?).但是,ZipList 需要 ..
发布时间:2021-12-14 12:31:39 其他开发

“有效"到底是什么?意思是

我一次又一次地读到有效这个词,但我仍然无法清楚地定义它的含义.我假设正确的上下文是有效的计算,但我也看到了术语有效的值) 我曾经认为有效意味着有副作用.但是在 Haskell 中没有副作用(除了某种程度上的 IO).仍然到处都是有效的计算. 然后我读到 monad 用于创建有效的计算.我可以在 State Monad 的上下文中理解这一点.但是我没有在 Maybe monad 中看到任 ..
发布时间:2021-12-14 12:30:10 其他开发

什么是范畴论 POV 中的 Applicative Functor 定义?

我能够通过以下方式将 Functor 的定义从范畴论映射到 Haskell 的定义:由于 Hask 的对象是类型,因此函子 F 将 Hask 的每个类型 a 映射到新类型 F a ,粗略地说,在它前面加上“F".映射每个态射 a ->Hask 的 b 到新的态射 F a ->F b 使用 fmap :: (a -> b) ->(f a -> f b). 到目前为止,一切都很好.现在我进 ..
发布时间:2021-12-14 12:28:39 其他开发

Haskell 中的替代 ZipList 实例?

ZipList 带有一个 Functor 和一个 Applicative 实例 (Control.Applicative) 但为什么不Alternative? 没有好的实例吗? 下面推荐的那个呢? 它有缺陷吗? 没用吗? 是否有其他合理的可能性(比如 Bool 可以在两种方式中成为幺半群),因此它们都不应该是 实例? 我搜索了“instance Alternative ZipLis ..
发布时间:2021-12-14 12:21:44 其他开发

Monad 是 Alternative 但不是 MonadPlus 的例子是什么?

在他对问题的回答中“类型类 MonadPlus、Alternative 和 Monoid 之间的区别?",Edward Kmett 说 此外,即使 Applicative 是 Monad 的超类,你最终还是需要 MonadPlus 类,因为服从> 空m = 空 不足以证明这一点 empty >>= f = 空 因此,声称某物是 MonadPlus 比声称它是 Alternative ..

Monad 比 Applicative 给我们什么优势?

我已阅读这篇文章,但没看懂最后一节. 作者说 Monad 为我们提供了上下文敏感性,但仅使用 Applicative 实例就可以实现相同的结果: let mayAge = (\futureYearbirthYear -> if futureYear 没有 do-syntax 肯定更丑,但除此之外,我不明白为什么我们需要 Monad.谁能帮我解决这个问题? 解决方案 这里有几个使 ..
发布时间:2021-12-14 12:11:05 其他开发

作为应用函子的功能(Haskell/LYAH)

Learn You a Haskell 的第 11 章介绍了以下定义: instance Applicative ((->) r) 其中纯 x = (\_ -> x)f g = \x ->f x (g x) 在这里,作者进行了一些不寻常的挥手(“ 的实例实现有点神秘,所以最好我们只是 [在行动中展示它而不解释它]").我希望这里有人能帮我弄清楚. 根据应用类定义,()::f( ..
发布时间:2021-12-14 12:01:46 其他开发

如何处理 Applicative 的副作用?

我到处都看到 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") ..
发布时间:2021-12-14 11:57:41 其他开发

应用函子评估我不清楚

我目前正在阅读 Learn You a Haskell for Great Good!并且在对某个代码块的评估的解释上磕磕绊绊.我已经读了好几遍解释,我开始怀疑连作者是否理解这段代码在做什么. ghci>(+) (+3) (*100) 5 美元508 应用函子将某些上下文中的函数应用于某些上下文中的值,以在某些上下文中获得某些结果.我花了几个小时研究这个代码块,并就如何评估这个表达式提出 ..
发布时间:2021-12-14 11:53:25 其他开发

什么是替代的“一些"?和“许多"对...有用?

替代方案是Applicative的扩展,声明了empty、和这两个函数:> 一个或多个: some :: f a ->F A] 零个或多个: many :: f a ->F A] 如果定义了,some 和 many 应该是方程的最小解: some v = (:) v 许多 v许多 v = 一些 v 纯的 [] 我找不到定义了 some 和 many 的实例.它们的含义和实际用途 ..