SICP 2章終了

今週は朝も夜も週末も集中して読めたため、2章を読み終えた。最後の2.5はなんかいい加減に読んだので後々読み返すことになりそうな気もするが。

ProductName 計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン,ジュリー サスマン,ハロルド エイブルソン
ピアソンエデュケーション / ¥ 4,830 (2000-02)
通常24時間以内に発送

p.109のメッセージパッシングとOOPって関連するよな。と思って調べてみたけどいまいちうまい表現が見つからなかった。

あとperlでOOPやるときのblessとmy $self = shift;みたいに第一引数が自分自身なのとperlのオブジェクトがblessされたハッシュリファレンスなこととか、もうすこしでちゃんと理解できそうな感じなんだけど、Perl におけるオブジェクト指向を読んでちょっと前進。

おもしろいですな、SICP

car ''testの謎

SICPの問題2.55で

gosh> (car ''test)
quote
gosh> (cdr ''test)
(test)

と印字する理由がいまいち分からなかったがそれっぽく書いてみたら、こんな感じか、、、

gosh> (cdr (quote 'test))
quote
gosh> (cdr (quote 'test))
(test)

と思ったら、前のページの注釈に書いてあった。

perlの標準モジュールを調べるには

どう書く?はじめました。kzfmだけど、いきなり標準モジュールでないautoboxでhello worldをといたのは不適切だったか(単に使ってみたかった)。

というわけで、標準モジュールの調べ方。

man perlmodlib

perlでaccumulate

最近朝起きてSICPを読んでる。で、SICPの2章も中盤を越えて、accumulateを使って行列の演算を定義した。

ふむーこれはpythonでやってみたいなと思ってたら、ちょうどタイミングよくpythonでやってる人がいた。

ので、perlで。

sub accumulate{
 my ($op, $init, $list) = @_;
 @$list == () ? return $init :
   return $op->(shift(@$list),accumulate($op,$init,$list));
}

my $test_func = sub {return $_[0]+$_[1];};
my $test_list = [1,2,3,4,5];

print accumulate($test_func, 0, $test_list);

で、SICPみたいに、たたみこむだけじゃなくてリストを戻したい。

my $cons = sub {return [@{$_[1]},$_[0]];};
XXX accumulate($cons, [], [1,2,3,4,5]);

List::Utilでも同じことできるみたいですが。自分で書いてみたかったということで。

perlで一気読みモード

すぐわすれるので、探した。

my $data = do { local $/; <$file> };

あとでPBP読み返す。

ProductName Perl Best Practices
Damian Conway
Oreilly & Associates Inc / 2922円 ( 2005-08 )


日本語版も欲しいかも。

NYNY(内容ないよう)っていうタグ

普通のSBSだといいにしろ悪いにしろ(これはひどいとか)、情報的に何かを与えるものをブックマークするわけだから、情報量が少ないものにタグがふられブックマークされることはまれだろう。

で、僕は読んだ文献をタグつけて管理するSBSを使っているので、斜め読みどころか縦読みするような論文もたまにある。そういう情報的に価値のあまりない論文には情報のないっていう情報としてorzとかつけてたが、今日NYNYというコジャレタグを思いついた。

それにしても、合成のレターとか考察とかアレだから、反応の公共データベースでも作ってそこに登録するほうがよっぽど役に立つのにとか思う。

とか、考えるに、ソーシャルブックマークには数字でいうところのゼロにあたる行為(というか概念)がないのかな。RSSリーダーとかで読まれてる割にブックマークされてないとかっていう指標ってどうかな。

church数のこと

一週間ぐらい前にchurch数のことがわかったときには

SICPも二章に入って、最初の盛り上がりがやってきたヨ!

なんつって喜んでエントリ書きかけてたんだけど、今となってはどうでもよくなってきた。むしろラムダに傾いたっていうか、TuringとChurchの狭間での髭剃りのほうが気になる。

lamdash

関数型言語に目覚めた30代におくるラムダッシュ!bluetoothで剃った髭の数を最寄りのフィボナッチ数でお知らせ!みたいなITシェーバーだったらコンテンツマッチ広告といえるじゃろが、444じゃなぁ、、、世界が驚いてもナナロク世代は驚かん(しかもナナロク世代じゃないし)

haskellでchurch数を後でちゃんと読む。

芝川の百番でラーメンと唐揚げ

お盆なので、みんなはU隊長の実家に帰省だが、僕はお盆休みがないのでみんなを富士宮を送リ届けるのが今日の任務。それにしても西富士道路があんなに混んでるとは、、、、有料道路の意味ないじゃんと思った。

さて、僕自身は久々の富士宮(芝川?)遠征なので、お昼いいとこないかなーとネットでチェックしてたら、今昔とか京とか鰻屋とかいったことあるとこしか出てこなかったので、

これは芝川グルメを制覇したかな?

と思ったが、よくよく探すと百番という中華料理屋がなかなかいけてるというのを見つけたのでお昼候補にあげてみた。で、向こうに着いたときにお義母さんに百番って美味いらしいんですけどどうなんですかって聞いたら、

あー、あそこは親戚だよ、十番でしょ?マァマァじゃねーの

と言われた。U隊長も親戚だって知らないし、お義母さんも店名間違うほどの遠い親戚らしいんだが、他にお奨めないからということでとりあえず行ってみることにした。

店は古きよきというかホノボノ系だが、地元のおっさんやらおばさんで賑わってていい感じ。伊豆に行ったときの南京亭みたいな感じでまったり(下田もまた行きたいな)。

肉が二割強しかないと評されるから揚げとワンタンメンを注文。あと餃子やらライスやらなんやらかんやら注文してた。

わんたんめん

ワンタンメンはちょっと手打ち風(手打ちなのかな)の縮れた幅の広い麺で好き。あとスープは鶏とか豚の醤油スープでシンプルで飽きの来ない感じ。たまに食べるといいし、店の雰囲気どおりの味。

から揚げ から揚げ

唐揚げはヤバイ。一皿1200円程度するから覚悟はしてたけど、山盛り。あとホントに肉が少なくて衣がサクサクしていてちょっとびっくりした。なんか海老せんみたいなものを一緒に混ぜてあげてんのかな?食感が面白い。

満足。

リストの要素の親の要素を知りたい場合

さて、bioinformaticsとかchemoinformaticsとか言われてるようなアレは、化学とか生物学に対して情報学的観点からアプローチしたりするわけです。こういう点から見ると、薬ってもんは蛋白質にうまいことはまる鍵みたいなもんで、蛋白質の穴にいい感じではまるような化合物を(コンピュータを駆使して)設計していくのが(コンピュテーショナルな)ドラッグデザイン(CADD)という分野だヨ。

で、蛋白質というものは複数のアミノ酸から構成され(100から数百)そしてアミノ酸は20種類程度存在し、それぞれ数十の原子から構成されているわけだ。要するに一対多の階層構造をとる。

protein -> amino-acid -> atom

みたいな。

蛋白質の階層

でそれぞれprotein aminoacid(aa) atomみたいなクラスを用意すれば

$atom1 = Atom->new({name => 'C1', type => 'C'});
...
$aa1 = AminoAcid->new({name => 'GLY', atoms => [$atom1, $atom2, ]})
...
$protein = Protein->new({name=> 'ProteinA', aminoacids => [$aa1,$aa2,$aa3...]});

みたいにそれぞれ配列に突っ込めば蛋白質を表現できて、あるatomオブジェクトを与えられた場合にそれがどのアミノ酸に属しているのか調べるのに

for my $aminoacid ($protein->aminoacids){
    for my $atom ($aminoacid->atoms){
        return $aminoacid if $qatom == $atom;
    }
}

みたいにdepthfirstで探索していけばいいんだろうけど、ちょっと探索効率が悪いので、atomオブジェクトに $atom->{parent} = $parent_aminoacidみたいに親のアミノ酸オブジェクト返すような属性追加したんだけど、これだと構造が複雑になってなんか気持ち悪い。

他にうまいやり方ってあんのかなと思ったお盆の夏2007。

PERCUSSION MADDNESS REVISITED

なにやらヨサゲなかほりがしますが。

ProductName PERCUSSION MADDNESS REVISITED
LOUIE VEGA PRESENTS LUISITO QUINTERO
BBE/VEGA RECORDS/PRIMITIVE / ¥ 2,580 (2007-08-25)
近日発売 予約可

最近メケメケラテンハウスよりもunaiみたいなモゴーとかグホーとかいってるやつのほうが気持ちいいんだよねーとか思いつつも惰性で予約。まぁ、Nicola Conteもおるしな。

というわけで、ここんとこThe Sky Was Pink (Holden remix)をかけまくり。あとRAMのコンピのやつ。あれはなんか好きな曲といまいちな曲のギャップが激しいのでまだちゃんと全曲通して聴いてない。