まだまだ当面Haskellな記録

東京工科大のHaskellテキストの「オーバーロードとクラス」はちょっと説明不足な箇所が多くて考え方はわかるものの、書き方はよくわからなかった…。インターフェイスとかジェネリクスの制約みたいなものねってことで、この先のテキストは手は動かさずにどんどん読み進めて読了。テニスの入門書は読み終えた、さあ球打つぞって感じかなw
IOに関しては最後の最後にさらっと出てきました。最終回にHello WorldってのがHaskellでのIOの鬼門っぷりが伺えます。
ここまでの感想としては、リストの操作がものすごく強力で楽しいってこと。高階関数や関数の部分適用や内包表現で遊ぶことに魅了されました。どうみてもパズルです。本当にありがとうございました。
トランプの1〜13*4組の数字の合計はこんな感じ。

foldr1 (+) [1 .. 13] * 4

こういう算数パズル的なものはできるようになったけど、ここから実用的なものへの道のりはかなり大変そう。

んで、今度は入門Haskell。1章を読んでみたけど、ペースがめちゃめちゃ速いですね。越田先生のテキストを読んでなければ挫折してただろうな…。最初っからHaskellのカラクリ部分の説明を次々と畳み掛けてきて、手を動かす隙も与えない感じ。これでわかっちゃう人ってスゴイかも。
この本で挫折した人にはこちらを先に読んでから、もう一度読み直すことをお勧め。越田先生のテキストで説明が足りないところは入門Haskellに書いてたりするので、相補的に利用するといい感じです。入門Haskellの0章を読んで、越田先生のテキストを読んで、終わったら入門Haskellってのがいいかな。

入門Haskellはまだ途中だけど、関数型言語ってどんなの?っていう雰囲気はぼんやりとながら見えてきた感じはします。理論的な難しいことはさっぱりだけど。「最後に」にあった(あとがきを先に読んだw)C++STL関数型言語の影響を強く受けてるってところを読んでなるほど〜っと納得。accumulate( vector1.begin(), vector1.end(), 1, mult ); なんてのが関数言語の影響なわけね。
C#2.0のListのForEach( Action action )とか、Sort( IComparer comparer )とか、Cのqsortってちょっとした高階関数ってことなんだろうな。yieldの宣言的な構文も関数言語っぽさを感じますね。でもLINQはそんなに関数言語っぽく見えないなぁ。あんまり調べてないからそう見えるだけなのかもしれないけど。ってか、SQLは関数型パラダイムなのか。Haskellが純粋すぎなのね…。
Haskell.NETが欲しいなっと。