引数を引き回す

いままで幾つか Haskell のコードを書いてきた。そうしているうちに、「関数プログラミングとは『永続データプログラミングを奨励していること』」の意味が理解できてきた。データの値を書き換える(再代入)のではなくデータを新しく作る、ということかな、と。

そういうことが少しずつ分かり始めてきたのだけれど、ちょっと問題が。

最近書いたコードの傾向として、引数の引き回しが多いというのがある。引き回している引数は状態(結果)を保存しておくためのリストのことが多い。今はその引き回す引数の数は少ないし、大規模なコードも書いていないので十分間に合っている。けれど、そうでなくなった場合どうすればいいのだろう。いくつもの引数をあっちこっちに引き回していたら、理解し辛いコードになることは容易に想像できる。

どうやったらスッキリかけるのか?

状態っていうと State がパッと思いつくけど。そろそろモナドも避けて通れなくなってきた感が。