関数型言語の勉強方法について

id:higepon:20060330:1143714380で関数型言語の勉強方法について人力検索で質問しました。
その結果、たくさんの回答(コメント欄での回答や、飲み会でのアドバイスも含む)をいただきました。ありがとうございます。


質問自体は単純で、逆に回答する立場からすると範囲が広すぎてとても答えづらいものだったと思います。


その中でも特に印象に残り、質がとても高いと感じた回答の一部を引用したいと思います。
id:practicalschemeさんによる回答です。(全文はhttp://q.hatena.ne.jp/1143714236#a507995)。

なかなか難しい質問です。一冊あるいは一サイト、決定版と言えるようなものは思い当たりません。しかし関数型言語やそのアプローチについては最近関心が高まりつつあるようで、ギャップを埋める入門書が徐々に出てくると思われます

[とっかかり]

関数型言語の難しさは、既に手続き型言語を使いこなしている人と、関数型言語で初めてプログラミングに触れる人とで違うのではないかと思われます。既に手続き型言語を知っている場合、その知識が関数型言語を使うにあたって邪魔になる可能性があります。そこで、どんな材料で勉強するにしても、まず一度、手続き型言語でマスターした概念をわきに置いてみることをお薦めします。具体的には…

[舞台裏]

富豪的とは言われても、裏でプログラムがどう動いているかは気になるもの。特に手続き型言語でがりがりプログラムを書いていた人にとっては、関数型言語のプログラムが実際にどのような手順で実行されているかを知ることによって、関数型言語への理解が深まることもあります

[実用へ]

最後に関数型のメリットですが、これは中規模以上の実用的なプログラムを書いてメンテナンスしてみないと肌で感じるのが難しい領域だと思います。大規模プログラミングで最も重要な要素はモジュラリティであり、それが関数型プログラミングの最大の利点のひとつでもあるからです。この論文はその点を簡潔に述べています:

なぜ関数プログラミングは重要か http://www.sampou.org/haskell/article/whyfp.html

本当はこの全文が少しでも多くの関数型言語を勉強したいプログラマの人の目に触れるようにしたかったのですがとりあえず一部引用で。


これらの回答を踏まえて、まずは一度挫折したSchemeを勉強すべく、「計算機プログラムの構造と解釈」を今日注文しました。
更に先週末はid:wanparkに借りた「計算機プログラムの構造と解釈」を必死に読んで(今までの5倍の労力をかけて)、チラシの裏(id:higepon:20060402:1143980332)に演習問題を書きなぐりました。


関数型言語への関心がとても高まりつつあるという実感は僕もかなり感じていて、勉強しないとなぁと思っていたのですが皆さんの回答のおかげで一歩が踏み出せました。
ちなみに、はてな社内では「入門Haskell―はじめて学ぶ関数型言語」を買っている人が3人ほどいました。


入門Haskell―はじめて学ぶ関数型言語

計算機プログラムの構造と解釈