関数型言語を勉強したくて+Pugs のソース読めるようになりたくて読んでみました。
読みやすい本です。難しい概念はあえて伏せて話を進めるし、章ごとにまとめも入ってるし。
でも、消化率はたぶん 6 割というところ。個々の説明は理解できるし、練習問題くらいは普通に解けるんだけど・・・サンプルコード(メモリを食わない tail.hs とか)にあったようなコードを自分で書けるようになるか、というと話は別のような気がします。関数型言語特有のセンスやノウハウが必要になりそうで。
それよりも問題は「モナドすげー!」とか「今度からこういう処理は Haskell で書く!」って気にならなかったところ。元々 LL Ring で誰かが「『この処理は関数型言語で書くとすっきりする』ってときは関数型言語で書きます」みたいなことを言っていて、そういう使い分けができるようになれればいいなー、と思ったけど、そこまでは到達できませんでした。
404 Blog Not Found の書評 で「これではHowはわかってもWhyは伝わらない。」と評されていたけど、なるほどその通りだなと思いました。流れで
入門Haskell も読みたいけど、しばらく無理そう。
Ruby 入門書の定番。Ruby は入門サイト読んで何度か勉強してたんですけど、もう一歩進めておきたかったので読んでみました。
元々文法の基本を知ってたので参考になるかわかりませんが、やたらさくさく読めました。定評のある入門書だけのことはありますね。
・・・と、全体的によさげな本なので、難点をいくつか書いておきます。
・p70 に「よいスタイルを身につけるには、他の人の書いたRubyのプログラムを読んで、それを真似るところから始めるのがよいでしょう。」と書いてるわりに、この本の中でスタイルが統一されていない気がする。K&R とか perlstyle で対応できる部分はいいんだけど、
a.inject(0) {|memo, item| (なんか処理) }
こういうのは Ruby 特有だと思うので、しっかりスタイルを統一してほしかった。
・練習問題の解答が出題に沿ってないことがある。あと、解答に本書で説明されてないメソッドが使われたりすることも。
初心者向けの本なんだから、もう少し気を遣ったほうがいいと思う。そういうのはあくまでも別解として示すなりして。
その他細かい指摘もあるけど、それは筆者にメールでも送るとして。練習問題の良否については Amazon にもちょこちょこ書かれているので、その辺見極めつつ購入されるといいかと。
私の感覚からすると難易度はそれほど問題じゃなくて、初心者への気配りが少し足りないんだと思います。折角読みやすい本なのに惜しいところです。