在 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/