2008年12月7日日曜日

【PAIP】9 Efficiency Issues (その2)


  • 9.1 Caching Results of Rrevious Computations: Memoization
  • そっか、Memoizationって、メモ化されてない関数を受け取って、そのメモ化バージョンを返す高階関数として定義できるんだな。なるほど。

  • 9.2 Compiling One Language into Another
  • インタプリタ:「プログラム」を表しているなんらかのデータ構造を評価するもの。
  • コンパイラ :「プログラム」を表しているなんらかのデータ構造を別の言語のプログラムに変換するもの。
  • なるほど。どんな言語で書かれたものであってもソースコードというのはデータ構造なんだよね、インタプリタやコンパイラから見れば。当たり前だけど新鮮。
  • そこにメタの概念を持ち込んで、「コンパイラから見たソースコードという意味でのデータ構造」と「ソースコードの中での、プログラム=アルゴリズム+データ構造という意味でのデータ構造」を同じにしてしまおう、とするとLispが出てくるんだろうな。

こつこつ。

0 件のコメント: