Haskellで使う配列。Arrayもあるけれど、効率が悪い(らしい)のでIOArrayを使ってみる。ghciにて。
Prelude> :m Data.Array.IO
IOArrayを使うためにData.Array.IOを読み込み。
Prelude Data.Array.IO> a <- newArray (0,7) 0 :: IO (IOUArray Int Int) Prelude Data.Array.IO> :t a a :: IOUArray Int Int
newArrayで新しい配列を作る。インデクスの範囲は0から7まで、初期値は0。型を指定してやらないとならないのはなぜか、IOUArrayとはなにか、とか、いろいろわかってない。
Prelude Data.Array.IO> (readArray a 0) >>= print 0
インデクス0の値は0。配列を作ったときに指定した初期値。
Prelude Data.Array.IO> writeArray a 0 10
インデクス0の値を変更。
Prelude Data.Array.IO> (readArray a 0) >>= print 10
値が変わっていることを確認。
形が分かっただけで、まだ「使う」レベルに至っていないや。
2007/06/02 追記
newArrayで指定する型はIO (IOArray Int Int)でいいらしい。参考にした情報を鵜呑みにしたのがまずかった。ますますもって、IOUArrayって、なに?