ほんとはData.Array.STのつもりだったんだけども、どっちもMArrayなので。
% runghc
{-# LANGUAGE ScopedTypeVariables #-}
import Data.Array.IO
main :: IO ()
main = do
a :: IOArray Int String <- newArray (0, 9) ""
mapM_ (\n -> writeArray a n $ show $ 10 - n) [0 .. 9]
readArray a 8 >>= print
return ()
【実行結果】
"2"
newArrayの時の型指定ダサいんだけど、いい感じに推論させることできないのかなー。