在 Haskell 中,有没有办法测试两个 IORef 是否相同?我正在寻找这样的东西:

IORef a -> IORef a -> IO Bool

例如,如果您想可视化由 IORef 组成的图形,这将非常有用。我不认为它会破坏引用透明度,因为 IORefs 有一个有意义的身份(结果可能是在 IO 中,无论如何)。而且我认为作为指针比较,有效地实现这一点并不难。

这在某处可用吗?或者如果没有,为什么不呢?

(编辑:我刚刚从 System.Mem.StableName 中找到了 a different SO question ,这看起来很有帮助。)

最佳答案

不要想太多。你有 instance Eq (IORef a) ,所以你可以只使用 == ,结果甚至不在 IO 中。

关于haskell - 测试 IORef 身份?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61604506/

10-13 02:19