ほぼ間違いなく、自分がHaskellの記法をちゃんと調べていないのが原因だが、タプルやデータ型を展開する時のコードが異常に冗長になって困る。

updateGK TextFeed (GiantKen {quitted = quitted
                            ,gkvars = (GKVars {currentState = currentState
                                              ,scenarioTree = scenarioTree
                                              })
                            ,counter = counter
                            }) =
  ...

こういうupdateGK関数を、第一引数(TextFeedのところ。enum風のdata型)の種類の数だけ記述している。
以前、Haskellにはマクロは不要だと書いたが、こんな事をしてる限り、マクロは欲しい!
勿論、実際には、もっと短く書ける記法がちゃんと用意されているんだろうが、調べるのは面倒だし、構文を憶えるのも面倒だ。


どうも、Haskellは自分には向いてないのは間違いなさそうに思えて仕方が無い。
Haskell自体はかなり正しい方向で設計されているように思えるものの……。
ツリーを書くのにいちいち型を記述しないといけないのは面倒だ。
行儀の悪いリストを作らせてほしい。
特定の機能を持つ関数に必要なパラメータが何なのかを全て把握してから関数を書く、なんてやってられない。そうなると、関数を書きつつ引数を増やす事になるが、これがHaskellには絶望的に向いてない。


とは言え、もう少し慣れれば何とかなりそうな気もするが……。
記述方法は気にくわなくても、重要な機能は揃っているし、安全にコードを書く事が出来る。
問題は、自分の脳味噌がHaskellについていけてない事だ。
Haskellは、自分にとって、Lispに次ぐ第二言語として生涯使えそうな雰囲気はあるので、なんとか手軽に極めたいところだ(あんまり頑張って真面目に「お勉強」して憶えようという気はない)。
Liskell書いた人もこんな気持ちだったんだろうか(多分違う)。