Gauche > Archives > 2011/02/05

2011/02/05 01:03:47 UTCRui
#
僕クルマ借りてないんですよ。Hilton Waikikiに泊まってるんですけど。Androidからこのページみれるけどテキストエリアが画面外の位置に表示される?みたいなのでメールかテキストかTwitterで連絡してくださいー。
2011/02/05 01:32:06 UTCshiro
#
今撮影から帰ってきました。私のcellをtwitterで送っといたけど見られたかな。とおる君経由でやりとりすればいいか。
2011/02/05 20:16:12 UTCshiro
#
F#でモナド http://d.hatena.ne.jp/mzp/20110205/monad コンピュテーション式おもしろいな
#
コンパイル時に展開されるから一種のマクロなんだろうけど、定義を見てみるとbuilderをnewで作ってるなあ。builderはコンパイル時までに確定してなくていいのかな。
#
コンパイル時には identifier { ... } という形だけ認識して identifier.Bind 等に展開するとこまでやって、実行時にディスパッチしてる? それだと性能的にあんまり美味しくないような。
#
それとも展開後にグローバルな依存解析やって、identifierにnew MaybeBuilder() が束縛されてること、MaybeBuilder()の動作が実行時に変化しないこと、を検出してインライン展開までやっちゃうんだろうか。
2011/02/05 20:29:44 UTCshiro
#
モナドに限らず抽象化機構と性能はトレードオフになることがよくあるけど、性能を出したい部分だけローカルにチューニングできるようにしておけば両立させることができる。
#
モナドは抽象化が強力すぎて、部分的に抽象化を破って下に潜ってチューニングするのがやりにくいと感じる。なので最初から性能が出せるようになってないと使い勝手が悪かろうと思っちゃうなあ。