例によってHigher-order Perlから 昨日までは、同じ処理を同じアルゴリズムで書いたらC/C++が一番早いに決まっているという信念があったのですが、この本を読んで考えが変わりました。2007年11月3日はそんな記念日。 相変わらずメモ化の話なんですが、 ・フィボナッチ書けたよ → 遅くね? ・メモ化したよ → 毎回メモ化の仕組み作るの面倒じゃね? ・closureがあるよ → 引数が一つの時しか使えなくね? ・joinでつなぐよ → f("x,", "y")と、f("x", ",y")でバグるよ ・正規表現でエスケープするよ → 遅くね? ・key generatorを引数で渡して、if文で切り替えたらどうよ → if文無駄じゃね? ・eval使うよ ← 今ここ という議論を経て、evalを使う話。上の議論は全部Perlのソース付きで説明されています。 で、問題のコードがこれ。