Haskell::OGR-nの探索(その10)

ようやくStateモナドに開眼した気がするので、その9のコードを書き換えてみる。

ogr10.hs

時間/領域計算量における性能はその9とさして変わってないので念の為。

なるほど、コードは大分シンプルになったと思う。
ただ、ある程度慣れないと状態の受け渡しがどのように行われるのか、さっぱり見当がつかない。

結局、doブロックが(Stateモナドにおいても)単なる糖衣構文であることと、Stateモナドにおける>>=、returnの役割が飲み込めれば、Stateモナドもそれ程難しい概念ではないことが分かる。
とは言っても実際に手を動かしてコードを書いてみないとその辺りの実感が湧かないのも確か。

まあ、計算パラダイムが今まで慣れ親しんできた手続き型言語とまるで違うんだから、当たり前と言えば当たり前な話なんだが。
やはり頭の柔らかい若い内にいろんな計算概念に馴染んでおいた方が良いね。でないと、自分の様にちょっとしたことでもうんうん唸るはめになる。