週に一回は書きますよ 月に4つ記事を書けばノルマは満たされます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
The Haskell School of Expression: Learning Functional Programming through Multimedia

読み終わりませんでした。半分、Reactive Robotsとかその辺まで読んでCS図書館に返却しました。

序盤は楽勝でしたが、中盤アニメーションを扱うあたりから急激に難しくなります。正直はじめに読むのにはお勧めできません。といっても、もうHaskellの日本語の本が複数出ているのでそんな人はいませんか。

一方、私にはある程度の収穫がありました。

とりあえず、型クラスの使い方に関するキーワードが得られたのが第一の収穫です。同じ構造を別の値に使う際に型多相を用い、同じ操作を別の構造に使う際に型クラスを使うらしいです。そういう意味ではjavaのinterfaceとやはり同じなのでしょうか。使い方にはだいぶ差がありますが。

無限リストに関する定理の証明方法として、最後に⊥をつけてみるという方法も学びました。しかしこの手法の正しさについてはよくわかりません。

あとは、よくあるHaskellにおけるフィボナッチ数列の定義
fib = 1:1:zipWith (+) fib (tail fib)

とそのO(1)性が、call by needと無限リスト構造に強く依存していることを知りました。式中に現れるfibがcall by needによってすべて同じ実体に関連付けられていないといけません。また定義を関数に書き換えると実体を共有できません。この辺、関数は勝手にmemoizationされないという話と同じだと思います。

それからこの話を友人に話して気がついたことがあります。call by needとかずらずら出てくるHaskellはやはり一般向けではないようです。簡約順序とかcall by needとかそういう話は、ラムダ計算をちょっとでもかじってないとうまく説明できないと思いました。もちろん、無限リストとか使わなければ気にすることはないとは思いますが。
スポンサーサイト
コメント
この記事へのコメント
じゃあ、次読みますか。
2006/09/15(金) 19:45 | URL | 白のカピバラ #wr.8gKW6[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://gusmachine.blog49.fc2.com/tb.php/69-0660e42a
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。