ようこそ、 魅惑の ST モナドの世界へ!ここは Haskell を使っておきながら、 やっぱ副作用をジャブジャブ使わないとプログラムした気がしないぜ! という悪い子のワンダーランドです(^^;
何と言いますか、Haskell ってとにかく遅いですよね。 例えば純粋な関数型プログラミング言語で遅延評価とかがあり、 これらの特徴は副作用が無いことを前提にしていますが、 そのせいで下手をすると C/C++ の100倍遅いなんてことがあります。
Haskell の設計者たちも、 流石に副作用を全否定していては実用的なプログラムが書けないと思ったのか、 Haskell にも副作用を扱う仕組みが用意されています。代表的なのは、 いつもお世話になる IO モナドです。 そりゃ、副作用なしに入出力をやるなんて無理ですもんね。 その他にも ST モナドという、 普通の関数に副作用を組み込む仕組みも用意されています。
ここでは、ST モナドの簡単な使い方を紹介します。 それでは以下のメニューからどうぞ。