久しぶりというか、ちょこちょこ読んでいるのだけどなかなか進まない。
Mark Jason Dominus
Morgan Kaufmann / 5976円 ( 2005-03-28 )
写経してみたけど、また戻ってきそうな予感。
制約システムで連立方程式を解く。
久しぶりというか、ちょこちょこ読んでいるのだけどなかなか進まない。
写経してみたけど、また戻ってきそうな予感。
制約システムで連立方程式を解く。
SICPからHOPへのコンボがperlを扱う上でとても役立った。
特にHOPは値段以上の価値があったと思ってるので満足。
そしてMAWP
来年もこの調子で。あと、もっとコードを書く。
9.4以降はlinogramの話なんだけど。
流して読んだら、最後の締めで、今までのチャプターのテクニックを総動員して書くとエレガントにかけるんだぜ的なことが書いてあって、まぁそうだろうなと思うんだけど、全写経してから、コードを眺めながら本を読まないと面白さが伝わりそうになかったわりに、写経する気力がちょっとない。
というわけで、気が向いたらまた読むことにした。
6章の無限ストリームと8章のParserが特に面白かったな。
つくるぶガイドブログ: Test::WWW::Declareで宣言的にWebアプリをテストというエントリを読んだ。
ちょうど今Higher-order perlの9章declarative programmingのとこを読んでいてタイミングがよいので後で、ソースを読んでおこう。
引越しもだんだんと落ち着いてきたので、Higher-order Perlを再開。
9.2はLocal Propagation Network
華氏を摂氏にしたりケルビンに変換するのってどれかひとつが決まればあとは自動的に決定されるわけだが、f2cとかc2fといった変換用のサブルーチンを書かずにネットワークとして表現することで、どちらか一方を決めれば残りが自動的に決まるようにする。
消化できていないところもあるけど一通り読み終わった。
サンプルのコードで端折ってる部分がいきなり多くなってて動かすのに苦労するとこが少し見受けられた。継続とかもう少し厚いと嬉しかったけど、それでも本書でもっとも分厚い章。
継続(8.8.1)使ってやる方法と、パーサ自体に押し込む(8.8.2)方法がある。 SICPのambのところを後でもう一度読んでおく。
なんていうかまだ継続をきちんと理解していないことが理解できた。
8.3と8.4はほぼセット。8.4だけで40page越えなので読み応えがあるし、ちょっと疲れた。
算術的な表現(四則演算)のための字句解析器や構文解析器をperlで実装するわけだが、リスト表現って強力だと。
あとleft recursionを無限ストリームにしていくとことか凄い。
Higher-Order Perl 8章
地道に理解しながら。
my $parser = make_parser_for_grammer 'expression',
{
expression => [['INT', '+', 'expression'],
['INT', '*', 'expression'],
['(', 'expression', ')'],
['INT'],
],
},
['(', 'INT', '*', '(', 'INT', '+', 'INT', ')', ')']
;
$childrenの$productionの@childをprint
INT,+,expression
INT,*,expression
(,expression,)
INT
##
(,INT,+,expression,)
(,INT,*,expression,)
(,(,expression,),)
(,INT,)
##
(,INT,*,INT,+,expression,)
(,INT,*,INT,*,expression,)
(,INT,*,(,expression,),)
(,INT,*,INT,)
##
(,INT,*,(,INT,+,expression,),)
(,INT,*,(,INT,*,expression,),)
(,INT,*,(,(,expression,),),)
(,INT,*,(,INT,),)
##
(,INT,*,(,INT,+,INT,+,expression,),)
(,INT,*,(,INT,+,INT,*,expression,),)
(,INT,*,(,INT,+,(,expression,),),)
(,INT,*,(,INT,+,INT,),)
childrenでとりあえずgrammarから生成できる子を生成しといてis_interestingでフィルタリング(DFS)
8章から突然難易度が上がる気がする。
08102007 chemoinformatics Meadow bioinformatics HOP