该哈斯克尔维基断言
MonadPlus的实例需要满足几个规则,就像Monad的实例需要满足三个monad定律一样.......最重要的是mzero和mplus形成一个幺半群.
其结果是mplus
必须是联想的.该哈斯克尔维基同意.
然而,Oleg在他的众多回溯搜索实现之一中写道
-- Generally speaking, mplus is not associative. It better not be,
-- since associative and non-commutative mplus makes the search
-- strategy incomplete.
Run Code Online (Sandbox Code Playgroud)
定义非关联是否是犹太教mplus
?MonadPlus
如果mplus
不是关联的话,前两个链接非常清楚地表明你没有真实的实例.但是,如果奥列格确实它...(在另一方面,在该文件中,他只是定义调用的函数mplus
,而并没有说这 mplus
是mplus
的MonadPlus
,他选择了一个非常令人迷惑的名字,如果这是正确的解释.)