developerWorksでHaskell紹介記事

Crossing borders: Explore functional programming with Haskell

正直no-side effect化で悩むくらいなら、IORef&Mapをがんがん使えばいいのにとは思う。それで素直な記述ができるならへたな副作用除去済コードよりは速いはず。

速度で思いついたけど、LISPSchemeはわかる人のための(IOでない)Monadの理解口としては、

  • 末尾再帰
  • Continuation Passing Style
  • (Continuation, call/cc)
  • Monad

という手順もありなんじゃないだろうか。