途中、読み飛ばしたところもあったけど、一通り読んだ。
公開されているzipファイルには、twoDznA.pdf と twoDznQ.pdfの2つのファイルが含まれています。 twoDznQ.pdfがテキストで、コードの一部が空欄(問題編)になっています。 twoDznA.pdfは、その空欄を埋めた形のテキスト(解答編)になっています。 twoDznQ.pdfを読んで空欄を埋めて、twoDznA.pdfで答え合せをしながら読んでいくHaskellドリル形式です。
扱っているHaskellの内容そのものは、ふつけるよりもやさしいです。 また、簡単ですが、ファイルの入出力も解説してます。 ただ、Monadの解説はありません。 また、題材に数学っぽいものがあり、人によっては難しいと感じるかもしれません。
とは言え、比較的わかりやすい英語で書かれており、このテキストからHaskell入門したり、 ふつけるを読んだ人が基本を整理する上で利用するのにいいんじゃないかと思います。
次は、Monadの解説があるらしい Yet Another Haskell Tutorial に挑戦するつもり。
書店を舞台にした日常の謎を解く連作短編ミステリ。 ストーリーが軽快でテンポが良く読後感が爽やか。 近いうちに続編が出版されるみたいなので、そちらも読みたい。
申込期限が9/1に伸びている。
ボディガードと殺人のプロとの因縁の対決と思わせておいて実は・・・。 スピィディーな展開で、一気読み。 前から注目していたせいか、どっかでストーリー展開を読んだ記憶があったため、 展開そのものに意外性は感じなかった。 アティカス達の今後が気になる終わり方だけど、次回作を読むかどうかは微妙。
日常の謎ミステリ。 ミステリ色は薄い。 北村薫の円紫シリーズが好きなら、こちらも楽しめるでしょう。
RubyKaigi 2006 でおなか一杯な感じだったので、わりと普通のテンションで参加。
結論。今年は挑戦したいと強く思う言語、アプリケーションはありませんでした。
多分、RubyKaigi以前と以後で自分に変化があったからだと思われます。 一つは、ふつける本などで、Haskellについて予備知識が増えたこと。 もう一つは、RailsによるアジャイルWebアプリケーション開発を読んで、 Railsについての予備知識も増えていたことです。
関数型言語のセッションの遅延評価とか、型推論とか、高階関数とか、 それなりに予備知識があったので自分なりに理解できたし楽しめた。
Schemeで、lazyというキーワードをつけなければ、 遅延評価にならないとかいう話も、 SICP の Exercise 1.5 は、そのままだと無限ループになっちゃうけど、 もしかして、lazy使えば、0になるのかなと思えたりとか。
キミならどう書くで 「Railsにはスキャフォールドがあって」というのにも、 scafoldのことだなと反応できたりとか。
話題に全くついていけないものが減った分、挑戦したいものが減ったのだと思われます。
フィボナッチ数列を生成する次の関数を考えます。
fibs :: Int -> [Int] fibs n = take n [y | (x, y) <- iterate f (0, 1)] where f (n, m) = (m, n + m)
Intは有限なので、
fibs 50
とすると、数列の途中でマイナスの値が出てきます。 マイナスにならないようにするには、
fibs :: Int -> [Integer]
という型宣言にします。
ちなみに、型宣言を省略した場合には、
fibs :: Num a => Int -> [a]
とHaskellが勝手に型推論します。
いや、だからどうしたという訳ではないですが。
Two Dozens Short Lessons in Haskell を読んでます。 19章まで読みましたが、多分、ふつけるよりも、やさしくて丁寧です。 ですが、Haskellでも実用的なプログラミングができそうと感じるのには、 ふつけるよりも、時間がかかりそうです。
LL Ring で教わったのですが、 Yet Another HaskellTutorial もやさしいらしいです。
全部、読んでないので、断言できませんが、Two Dozensは、モナドにふれてないんじゃないかと思われます。 Yet Another では、モナドも解説しているそうです。
ちょっと見た感じでは、私は、Two Dozens の方がよりやさしいんじゃないかという気がしてます。
これまでのHaskellに関するメモは、ブログにちょこちょこと書いてます。
実は、雑感はブログに移行しちゃおうかと考え中。
次世代のWindowsに搭載されるスクリプト言語はHaskellっぽくて 関数型プログラミング言語ファンにもアピールし、 それでいて、HaskellのMonadを駆使することにより、 従来の手続き型スクリプト言語になれている人の抵抗感もなくし 両者をとりこんでしまおうという野心的な狙いがあって、 コードネームがMonadに なったのです。Haskellをやっておけば、近い将来、きっと役に立ちます。
というのは、嘘です。
さいきんやってないんですかときかれたので、そんなことはないということをしめすために、ひさびさにやってみます。 上で書いたのをT-Codeを使って書くと
じせ代のWindowsにとうさいされるスクリプトげんごはHaskellっぽくて かんすうがたプログラミングげんごンにもアールし、 それでいて、HaskellのMonadをく使することにより、 じゅうらいの手つきがたスクリプトげんごになれている人のていこうかんをなくし りょう者をとりこんでしまおうという野しんてきなねらいがあって、 コードームがMonadになったのです。 Haskellをやっておけば、ちかいしょうらい、きっとやくに立ちます。 というのは、うそです。
カタカナはぜんぶは入りょくできませんが、たまに、かんじを入りょくできるようになりました。 まぜ書きへんかんを使えば、もっとかんじは入りょくできるんだけど、 あえて使わないで書くとこんなかんじです。
まぜ書き変換を使えば、もっと漢字は入力できて、こんな感じになります。
どうしようかなあ。なんか気分がのらないなあ。
軽いタッチのユーモア・ミステリ。 もう少しひねりのある展開が欲しかった。
法廷ミステリ。 タイムテーブルが登場するアリバイトリック物は苦手なので、あまり、楽しめなかった。 ただ、エンディングには、さすがに驚かされた。
Haskellだって実用的なプログラミングができることを教えてくれる本。 途中で挫折しないように、割り切れるところは割り切って書いてある本。 Haskell初心者の私には、教科書っぽく順序立てて解説されるよりも、 とっつきやすくて良かったです。 実用的なプログラムをすぐに書けるところが チュートリアル的入門書としてポイントが高いです。
本格的にHaskellを使う場合には、整理する意味でも、 一から系統立てて説明してくれる別の本かドキュメントが必要だと思います。
モナドも型システムもまだよくわからないので、もうしばらく Haskellとつき合う気になってます。 わからないからあきらめるんじゃなくて、もうしばらくつき合おうと思わせてくれたのは、この本のおかげです。
最後のオチだけは、上手いと思ったけど、残念ながらそれだけ。
短編ミステリのスタイルで最後にすべての話が一つにつながって長編になるミステリ。 日常の謎ミステリで、こんなスリリングな倒叙ミステリを読めるとは思ってもみなかった。
ホラー短編集。 ホラーと言っても、血みどろスプラッターじゃなくて、世にも奇妙な物語風です。
終盤のネットワークプログラミングの章がやや駆け足になっているのがちょっと残念。 C言語の入門書と LinuxプログラミングやUNIXプログラミングの解説書とのギャップを埋める貴重な一冊なのかも。 そのせいもあるのか、なんか微妙な立ち位置の本だなあという印象を持ちました。
すっぱりと切り捨てるような表現があったりして、そこがちょっと面白かったです。 「ふつう」なのかどうかは、私には、よくわかりませんでした。
BLLの上位にObjectDataSourceがくるのか。 私は、てっきり、ObjectDataSourceの上にBLLがくるとばかり思っていた。 GridViewなんかのインターフェースと、BLLを糊付けするのが ObjectDataSourceの役割ということらしい。
犯人は最初から明らかにされている倒叙ミステリ。 犯人側の視点から描かれる犯人と探偵とのスリリングな頭脳戦が読みどころ。
どうしても、GUIには興味が持てず、さらっと読み流してしまった。
malloc, calloc, realloc, free が出てきた。 11章を読んでからと後回しにしていた問題に着手できることになる。
今頃、気づいたのだが、ふつりなはC言語の入門書ではない。 mallocの解説の前に、mallocを知らないと困る問題を出題するというのも、それはそれでありなのかも知れない。
8.3 の練習問題の2と同じように、1は、やっぱり11章を読んでからやった方がいいと思う。
えー、漢字の練習をやっている訳ですが、タイプミスが多くなる一方な気がする今日この頃です。 それさえなくなれば、変換をしなくてすむ分、圧倒的に入力が速くなると思います。 タイプミスさえなくなれば...。 実は、このサイトもできるだけ、T-Codeを使って入力するようにしています。 fjで仮名漢字変換をしたり、SKKの助けを借りたりもしながらも、なんとか入力しているのです。 でも、fj禁止にしないと上達しないかな。
正誤表を見るまで、どうして、1が難じゃないのか悩んでしまった。 -fじゃなくて、-iのつもりだったとわかって納得した。