- 9.1 Caching Results of Rrevious Computations: Memoization
- そっか、Memoizationって、メモ化されてない関数を受け取って、そのメモ化バージョンを返す高階関数として定義できるんだな。なるほど。
- 9.2 Compiling One Language into Another
- インタプリタ:「プログラム」を表しているなんらかのデータ構造を評価するもの。
- コンパイラ :「プログラム」を表しているなんらかのデータ構造を別の言語のプログラムに変換するもの。
- なるほど。どんな言語で書かれたものであってもソースコードというのはデータ構造なんだよね、インタプリタやコンパイラから見れば。当たり前だけど新鮮。
- そこにメタの概念を持ち込んで、「コンパイラから見たソースコードという意味でのデータ構造」と「ソースコードの中での、プログラム=アルゴリズム+データ構造という意味でのデータ構造」を同じにしてしまおう、とするとLispが出てくるんだろうな。
こつこつ。
0 件のコメント:
コメントを投稿