gpt4 book ai didi

Haskell IORef 数组使用

转载 作者:行者123 更新时间:2023-12-02 16:55:56 25 4
gpt4 key购买 nike

我正在开发一个程序,该程序使用大量 IORef 数据类型。哪种方法更能节省内存/处理器效率:

[IORef Foo]

IORef [Foo]

忽略我使用列表而不是向量或数组的事实。

最佳答案

使用[IORef Foo]可以轻松更新元素,使用IORef [Foo]只能更新整个列表。由于您可能希望在不复制的情况下有效更新元素,因此您需要 [IORef Foo]。想一想,您想要一个可变事物的列表,而不是一个不可变事物的可变列表。

举个例子

import Data.IORef

makeTest :: IO [IORef Int]
makeTest = sequence [newIORef 0, newIORef 1, newIORef 2]

main = do
test <- makeTest
readIORef (test !! 1) >>= print
modifyIORef (test !! 1) (+1) -- Doesn't copy list
readIORef (test !! 1) >>= print

关于Haskell IORef 数组使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129886/

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