gpt4 book ai didi

arrays - Haskell 中的卡住和解冻数组

转载 作者:行者123 更新时间:2023-12-02 08:14:58 27 4
gpt4 key购买 nike

我正在开发一个涉及在 Haskell 中读取和写入数组的项目。我想将数组存储在不可变数组类型中(因为我想尽可能避免可变性),因此我正在使用 freezethaw 函数MArray s。但我对如何使用这些功能感到困惑。这就是我所拥有的(无法编译):

modifyBoard bd = freeze mbd 
where
t = view falling st
ps = extractLocs t
mbd = runSTArray $ do
a <- thaw bd
mapM_ (\xy -> writeArray mbd xy (Filled t)) ps
return a

我不应该以这种方式使用数组吗?或者我该如何解决这个问题?

最佳答案

它应该可以通过一些更改来工作:

1.) 修改解冻的 a 而不是未解冻的 bd

2.) 否,runSTArray 后无需重新卡住。您返回的结果已经被卡住。

modifyBoard bd = mbd 
where
t = view falling st
ps = extractLocs t
mbd = runSTArray $ do
a <- thaw bd
mapM_ (\xy -> writeArray a xy (Filled t)) ps
return a

关于arrays - Haskell 中的卡住和解冻数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30653727/

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