913得票5回答
一个单子仅仅是一个自函子范畴中的幺半群,有什么问题吗?

以下引用出自谁之口? 单子只是一个函子合成范畴中的幺半群而已,问题在哪里? 另外,不那么重要的一点,如果这是真的,你能否给出一个解释(希望可以被没有太多Haskell经验的人理解)?

92得票1回答
类型类MonadPlus、Alternative和Monoid之间的区别是什么?

标准库Haskell类型类MonadPlus、Alternative和Monoid都提供了两个语义基本相同的方法: 一个空值:mzero、empty或mempty。 一个将类型类中的值合并的运算符a -> a -> a:mplus、<|>或mappend。 所有...

66得票4回答
什么是幺半群同态?

我阅读了来自 Monoid Morphisms, Products, and Coproducts 的单子同态的相关内容,但无法完全理解。 作者说(强调原文): length 函数从 String 映射到 Int,同时保留了单子结构。这样一种从一个单子到另一个单子的映射方式称为 单子...

50得票2回答
简单例子来说明范畴、幺半群和单子?

我对这三个概念感到非常困惑。 有没有简单的例子来说明类别、幺半群和单子之间的区别? 如果有这些抽象概念的说明,那将非常有帮助。

42得票4回答
为什么使用MonadPlus而不是Monad + Monoid?

我试图理解MonadPlus背后的动机。如果已经有了类型类Monad和Monoid,为什么还需要它呢?可以承认,Monoid的实例是具体类型,而Monad的实例需要单个类型参数。(请参见Monoid vs MonadPlus以获得有用的解释。) 但是,你不能将任何类型约束重写为(MonadPl...

28得票2回答
Scala中的单子与幺半群的区别

我最近尝试寻找一个关于单子(monads)和幺半群(monoids)区别的好资源。 有没有人能提供一个这方面的好链接,或者花点时间详细阐述它们的相似之处/不同之处呢?

28得票4回答
编程中的单子/半群示例

众所周知,在编程中单子很常见。它们是如此普遍和有用,以至于我正在开发一个完全基于它们的属性(分布式数据聚合)系统。要使该系统实用,我需要有用的单子 :) 我已经知道以下内容: 数值或矩阵求和 数值或矩阵乘积 在带有顶部或底部元素的全序下最小值或最大值(更一般地,在有界格中加入或遇到,甚至...

26得票1回答
一个基本的Monoid定义是“来自实例声明的超类中没有(Semigroup MyMonoid的实例)”。

我试图使用并集操作在Haskell中定义整数集合作为Monoid。 module MyMonoid where import qualified Data.IntSet as S data MyMonoid = MyMonoid S.IntSet instance Monoid MyMo...

25得票4回答
单子的实际用途是什么?

我正在阅读《Haskell趣学指南》(Learn You a Haskell),已经学完了应用和现在正在学习单子(monoids)。我没有问题理解这两个概念,虽然我发现应用在实践中很有用,而单子则不太一样。所以我认为我可能对Haskell的某些东西还没有理解透彻。 首先,说到Applicat...

24得票3回答
单子与MonadPlus

我对Monads和Monoids都非常陌生,最近也了解了MonadPlus。从我看到的内容来看,Monoid和MonadPlus都提供了一个带有可结合二进制操作和身份元素的类型。(在数学术语中,我将其称为半群。)那么,Monoid和MonadPlus之间有什么区别?