Data.Vector
has generate :: Int -> (Int -> a) -> Vector a
but I don't see an equivalent in Data.Vector.Mutable
. What am I missing?
答案 0 :(得分:1)
您可以安全地将unsafeThaw
应用于generate
的输出,以生成一个零复制的可变向量:
import Data.Vector
import Data.Vector.Mutable
main :: IO ()
main = do mv <- unsafeThaw (generate 10 (*5))
write mv 3 999
print =<< freeze mv
请注意,使unsafeThaw
不安全的唯一方法是在操作后不能使用不可变向量,因此上面的模式是安全的。