首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有人知道(或记得)违反阶级法会在GHC中引发问题?

有没有人知道(或记得)违反阶级法会在GHC中引发问题?
EN

Stack Overflow用户
提问于 2011-08-07 10:40:56
回答 2查看 351关注 0票数 7

在我问了What happens to you if you break the monad laws?一段时间后,我在Haskell Wiki上一个关于Safely running untrusted haskell code的页面上偶然发现了这个未解释的短语

“创建违反假定法则的类实例(参见EvilIx)”

作为可能攻击lambdabot的一个例子。

因为lambdabot使用GHC,所以这可能是GHC的一个bug (或特性),它对类法进行了假设。有人记得这些是什么吗?这种情况曾经(或可能)以酸性方式发生过吗?

(在谷歌上搜索"haskell +Evillx“没有结果)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-05 04:27:04

数组使用Ix来管理边界。他们相信Ix做到了它所说的。如果没有,您可以欺骗数组机制访问不属于它们的内存位置。

cf EvilIxhttp://www.haskell.org/pipermail/haskell-cafe/2006-December/019994.html

票数 4
EN

Stack Overflow用户

发布于 2011-08-07 23:35:33

如果我们将monad视为建模副作用,则声称是monad但不遵守法律的类型可能会导致效果以错误的顺序或错误的次数发生。

一个典型的例子是ListT,list monad转换器。最初的实现并不满足单元律。"ListT Done Right维基页面在名为"Examples“的部分中有一些简单的ListT用法示例。您可以看到当您使用违反法律的原始实现运行这些程序时,和使用符合法律的替代程序运行它们时,这些程序的不同之处。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6970383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档