haskell 为什么原地突变用“IO”表示?

zlwx9yxi  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(105)

为什么可变的数据结构和其他可变性在函数式语言中使用IO表示?我正在研究例如Haskell的IORef或Idris的IOArray
我不认为这是一个历史或设计问题,我不太明白为什么IO适合突变-或者更确切地说,为什么突变在封装在IO中时变得纯粹。

hwazgwia

hwazgwia1#

你不需要用IO来表示它们。也可以用ST来表示它们。但是你显然可以用IO来表示它们,这样就可以实现任何不好的副作用。所以如果你在IO中工作,在那里也做突变是最简单的,这样你就不需要担心将不同的monad焊接在一起。如果你还没有使用IO,你应该使用ST

相关问题