gpt4 book ai didi

haskell - 如何知道一个表面上纯粹的 Haskell 接口(interface)何时隐藏了不安全的操作?

转载 作者:行者123 更新时间:2023-12-02 14:21:43 25 4
gpt4 key购买 nike

我最近一直在阅读有关 unsafePerformIO 的内容,我想问你一些事情。我认为真正的语言应该能够与外部环境交互,所以 unsafePerformIO 是有道理的。

但是,据我所知,我不知道有什么快速方法可以在不检查代码以搜索对 unsafePerformIO 的调用的情况下知道明显纯净的(从类型判断)接口(interface)/库是否真的纯净(文档可能会省略提及它)。我知道只有当您确定引用透明​​度得到保证时才应该使用它,但我仍然想了解它。

最佳答案

不检查源代码是没有办法的。但这并不太困难,因为 Haddock 在文档中直接提供了一个很好的链接,指向语法突出显示的定义。请参阅 this page 定义右侧的“来源”链接举个例子。

Safe Haskell与此相关;它用于在您想要禁止使用不安全功能的情况下编译 Haskell 代码。如果模块使用不安全模块(例如 System.IO.Unsafe)并且没有专门标记为Trustworthy,它将继承其不安全状态。但使用 unsafePerformIO 的模块通常会安全地使用它,因此声明自己值得信赖

关于haskell - 如何知道一个表面上纯粹的 Haskell 接口(interface)何时隐藏了不安全的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com