- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Instances of MonadPlus are required to fulfill several rules, just as instances of Monad are required to fulfill the three monad laws. ... The most essential are that mzero and mplus form a monoid.
mplus
必须是关联的。
Haskell wiki同意。
-- Generally speaking, mplus is not associative. It better not be,
-- since associative and non-commutative mplus makes the search
-- strategy incomplete.
mplus
是否符合规定? ?前两个链接非常清楚地表明您没有真正的
MonadPlus
例如
mplus
不是关联的。但是,如果 Oleg 这样做了……(另一方面,在该文件中,他只是定义了一个名为
mplus
的函数,并没有声称
mplus
是
mplus
的
MonadPlus
。他选择了相当困惑的名字,如果这是正确的解释。)
最佳答案
以下是奥列格本人的意见,以及我的评论和他的澄清。
好的。 首先,我想说明我与加布里埃尔的分歧
冈萨雷斯。不是每个人都同意 MonadPlus
应该是幺半群
关于 mplus
和 mzero
.报告对此只字未提。那里
当情况并非如此时,有许多令人信服的案例(见下文)。一般来说,
代数结构应该适合任务。这就是为什么我们有
群,以及较弱的半群或类群(岩浆)。它似乎MonadPlus
通常被视为搜索/非确定性单子(monad)。如果是这样,
那么 MonadPlus
的属性应该是那些促进
搜索和关于搜索的推理——而不是一些理想的临时
某人出于任何原因喜欢的属性。让我举个例子:
制定法律很诱人
m >> mzero === mzero
NonDeT m
)不能满足该法律。例如,
print "OK" >> mzero =/== mzero
mplus
不能对称:
mplus m1 m2
通常不同于
mplus m2 m1
, 在同一模型中。
mplus
.不需要
mplus
的主要原因有两个
ones = return 1 `mplus` ones
foo = ones `mplus` return 2
=== {- inlining ones -}
(return 1 `mplus` ones) `mplus` return 2
=== {- associativity -}
return 1 `mplus` (ones `mplus` return 2)
===
return 1 `mplus` foo
MonadPlus
表示的任何搜索。 , 所以
mplus
是结合的和不可交换的。因此,如果
MonadPlus
是一个
mplus
的关联性是不合理的要求。
mplus
上强加幺半群 (
mzero
,
MonadPlus
) 结构.
MonadPlus
应该用于搜索单子(monad)或应该有另一个
MonadPlus'
,就像
MonadPlus
但与
MonadPlus
的假设即可。实例。
mplus
的重写规则是的,单纯的存在
MonadPlus
的广泛使用非关联的实例,
The monoid laws are the minimum requirement because without them the other laws are meaningless. For example, when you say
mzero >>= f = mzero
, you first need some sensible definition ofmzero
is, but without the identity laws you don't have that. The monoid laws are what keep the other proposed laws "honest". If you don't have the monoid laws then you have no sensible laws and what's the point of a theoretical type class that has no laws?
mplus
的关联性. JFP 论文省略了
mplus
的所有幺半群定律。
mzero
(但使用
mzero >>= f === mzero
)。好像可以有
mplus
的幺半群定律和
mzero
.
The two laws that everybody agrees that
MonadPlus
should obey are the identity and associativity laws (a.k.a. the monoid laws):
mplus
(也许作者仍在辩论他们)。所以我
关于haskell - mplus 必须始终是关联的吗? Haskell wiki vs. Oleg Kiselyov,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15722906/
最近几天,我们考虑使用 Solr 作为我们的首选搜索引擎。 我们需要的大多数功能都是开箱即用的,或者可以轻松配置。 然而,我们绝对需要的一项功能似乎在 Solr 中被很好地隐藏(或缺失)了。 我会试着
我是 Sequelize 的新手,并且一直在探索关联。我正在使用 mysql 5.6 并 Sequelize ^4.42.0。我正在尝试创建两个简单的表:PRJS 和 TASKS 并将一些数据插入这些
关联、聚合和组合之间有什么区别?请从实现的角度解释一下。 最佳答案 对于两个对象,Foo 和 Bar 可以定义关系 关联 - 我与一个对象有关系。 Foo 使用 Bar public class Fo
这两种 hasOne 语法有什么区别? class Project { ....... ............ static hasOne = Employee // static h
对于当前的项目,我想使用遗传算法 - 目前我查看了 jenetics 库。 如何强制某些基因相互依赖?我想将 CSS 映射到基因上,例如我有基因指示是否显示图像,以及如果它也是各自的高度和宽度。因此,
关联、聚合和组合之间有什么区别?请从实现的角度解释一下。 最佳答案 对于两个对象,Foo 和 Bar 可以定义关系 关联 - 我与一个对象有关系。 Foo 使用 Bar public class Fo
假设我有一个名为“学生”的表格,其中包含姓名、手机、电子邮件、首选类(class)、首选学校、性别、年龄、地址、资格、职称、家庭电话、工作电话等列 我想从 Students 表中选择数据并插入到 2
问题标题有点困惑。我有一级员工和一级项目。一名或多名员工正在从事一个或多个项目。在这个关联中,我只有一个从具有*多重性的员工类到具有*多重性的项目类的链接。现在有另一种实现。每个项目只有一名经理,属于
到目前为止,我有一个程序采用一组随机点、站点,并围绕这些点形成适当的 Voronoi 图,表示为角和边的图形。它还为我提供了 Delaunay 三角剖分作为另一个以所有站点为节点的图形(尽管我不知道这
实现IComMethodEvents时你得到三个事件。 OnMethodCall OnMethodException OnMethodReturn 我的目标是记录 COM+ 组件中每个方法的调用时间。
我正在处理这个问题。我正在创造数学问题,每一个都有回应。例如。 如果我的问题是关于“5x + 15 = 2 的结果?”,我将只等待一个答案(整数)。 如果我的问题是关于“给我这个形状的面积和许可”,我
我正在寻找一种数据结构来保存唯一元素的无序集合,它将支持以下操作 在集合中任意位置插入/删除元素 查询元素是否存在 访问一个随机元素 天真地,1 和 2 建议使用关联容器,例如unordered_se
是否可以在 LINQ 中使用类似 ContactAddress.Contact 的内容,而无需在 SQL Server 中在这两者之间创建外键关系(通过 Contact.Id ContactAddr
我一直在谷歌搜索,但不明白调用 javax.persistence.criteria.Subquery 和 Criteria API 的方法相关的结果是什么。 http://www.objectdb.
我正在关注 Chris McCord 的“Programming Phoenix”一书,在第 6 章中,在 User 之间创建了一个关系。和一个 Video . 尝试使用 mix phoenix.se
我在 XAML 中有一个 ItemsControl,我在其中为每个组显示一个扩展器,以便我可以展开/折叠该组。我想保持 IsExpanded 的状态属性(以及可能与组标题显示相关的其他设置)。通常你只
Oracle 11 中是否有内置方法来检查 varchar2 字段中值的相关性?例如,给定一个简单的表,如下所示: MEAL_NUM INGREDIENT --------------------
是否可以在没有 JPA 在数据库中创建外键的情况下设置多对一关联? 这些表归另一个系统所有,并以异步方式填充。因此我们不能在数据库中使用 FK。仍然,几乎总是,最终是一种关系。 @ManyToOne(
我一直在使用NHibernate,使用Fluent NHibernate进行映射。我解决了很多问题,并开始认为自己在nhibernate中经验丰富。 但是,此错误非常奇怪。 这是我的模型: p
我正在开发一个 Typescript Sequelize 项目,其中我的 /models/index.ts 文件具有以下“导入此目录中的所有模型”功能: var basename = path.bas
我是一名优秀的程序员,十分优秀!