>>32
純粋関数型言語には作れないんじゃないとか言われてたので作ってみたのはカウンター。

CUIのカウンターはmapM_ (\x -> print x >> getLine) [1..]ってしただけ。
当時は"q"を押したら終了とか、"clear"って入れたらリセット(main関数で再帰)とか、もうちょっと凝ってた。

gtk2hsでカウンター。
ボタンの表示する文字(ボタンオブジェクトのバッファ)とHaskellで値を遣り取り。
Haskellは文字を読んで処理して返すだけなので、状態を持たない。
状態を持っているのはGUIのボタン。