wvogel日記

自分用の技術備忘録が多めです.

課題

今まで
Applicative、Parsec、State、Get
と、色々なモナドに触れてきたが(Applicativeはちょっと違うね)、
私が感じた、モナドに対する感想。


巷で言うほど難しくない。


モナドは、下に書いた記事の例では、
入力から一文字ずつ読み込みその値に応じて処理するわけだが、その受け取る文字が、関数部分では隠蔽される。
なので、値の変更を許しつつも(実際には変更されてはいないが、そう見える、という意味で用いている)、
現在の状態ではなく、関数の機能のみに焦点を当てて思考・記述をしていくことが出来る、と私は考える。


そして、モナド(do記法)を使うことで、命令型言語風に書くこともできてしまう。
処理の流れをちゃんと理解すれば、あとは丁寧に書きすすめるだけで期待通りの処理を行える。
実際に私も、いつかHaskellwikiでStateモナドってこんなものなのか、と調べただけだが、処理自体は2行程度でも簡単に書けてしまった。


というわけで。
モナドはそんなに難しくない。
State、Parsecなんかは良い例でしょう。
他にどんなモナドがあるのか、また調べて色々いじっていきたい