RnM*_*Mss 0 monads haskell state-monad
有功能可以做功能arrayToList吗:
import Data.Array.ST
import Control.Monad.ST
genArray :: ST s [Int]
genArray = do
a <- new Array (0, 99) 0 :: ST s (STArray s Int Int)
writeArray a 0 1
{- ... write something to the array ... -}
return arrayToList(a)
Run Code Online (Sandbox Code Playgroud)
如果没有,怎么写一个?
你不需要IO这个,构建一个列表是一个纯粹的操作:
genArray :: [Int]
genArray = runST $ do
a <- newArray (0, 99) 0 :: ST s (STArray s Int Int)
writeArray a 0 1
{- ... write something to the array ... -}
getElems a
Run Code Online (Sandbox Code Playgroud)