日本語訳がWebで公開されています。URLは次の通り。
私は印刷した本の方が読みやすいので、翔泳社から出版されている本を買いました。
このページには、私の解答へのリンクを書き、目次として使えるように整理していきます。
1 手続きによる抽象の構築
1.1 プログラムの要素
- 問題 1.01 : 解釈系を使う
- 問題 1.02 : 前置記法
- 問題 1.03 : 三つの数を引数として取り、大きい二つの数の二乗の和を返す手続き
- 問題 1.04 : 合成式を演算子として使う
- 問題 1.05 : 作用的順序と正規順序
- 問題 1.06 : ifが特殊形式である理由
- 問題 1.07 : good-enough?の改良
- 問題 1.08 : 立方根の計算
1.2 手続きとその生成するプロセス
- 問題 1.09 : 反復的プロセスと再帰的プロセス
- 問題 1.10 : Ackermann関数
- 問題 1.11 : f(n)=f(n-1)+2f(n-2)+3f(n-3)
- 問題 1.12 : Pascal三角形
- 問題 1.13 : フィボナッチ数を求める代数方程式
- 問題 1.14 : 両替の計算が生成するプロセス
- 問題 1.15 : 正弦の計算
- 問題 1.16 : べき乗を求める反復的アルゴリズム
- 問題 1.17 : 対数的ステップ数の乗算手続き(再帰的プロセス)
- 問題 1.18 : 対数的ステップ数の乗算手続き(反復的プロセス)
- 問題 1.19 : Fibonacci数を対数的ステップ数で計算する
- 問題 1.20 : GCDが生成するプロセス
- 問題 1.21 : 最小除数の探索
- 問題 1.22 : 素数を求めるために必要な計算量
- 問題 1.23 : 素数性を判定する数を奇数に限定
- 問題 1.24 : フェルマー・テスト
- 問題 1.25 : expmodの必要性
- 問題 1.26 : expmodの計算に必要なステップ数
- 問題 1.27 : カーマイケル数
- 1.2.6 : expmodでbaseのexp乗をmで割った余りが求まる理由
1.3 高階手続きによる抽象
- 問題 1.29 : Simpsonの公式
- 問題 1.30 : 反復的プロセスを生成する総和
- 問題 1.31 : productの定義
- 問題 1.32 : accumulate
- 問題 1.33 : filtered-accumulate
- 問題 1.34 : (f f)の評価
- 問題 1.35 : 不動点の探索による黄金比の計算
- 問題 1.36 : x^x=1000
- 問題 1.37 : 連分数
- 問題 1.38 : 連分数による自然対数の底eの近似
- 問題 1.39 : 正弦関数の連分数展開
- 問題 1.40 : Newton法
2 データによる抽象の構築
2.1 データ抽象入門
2.1.1 例: 有理数の算術演算
2.1.2 抽象の壁
2.1.3 データとは何か
2.1.4 拡張問題: 区間算術演算
2.2 階層データ構造と閉包性
2.2.1 並びの表現
2.2.2 階層構造
2.2.3 公認インターフェースとしての並び
2.2.4 例: 図形言語
2.3 記号データ
2.3.1 クォート
2.3.2 例: 記号微分
2.3.3 例: 集合の表現
2.3.4 例: Huffman符号化木
2.4 抽象データの多重表現
2.4.1 複素数の表現
2.4.2 タグつきデータ
2.4.3 データ主導プログラミングと加法性
2.5 汎用演算のシステム
2.5.1 汎用算術演算
2.5.2 異る型のデータの統合
2.5.3 例: 記号代数
3 標準部品化力, オブジェクトおよび状態
3.1 代入と局所状態
3.1.1 局所状態変数
3.1.2 代入を取り入れた利点
3.1.3 代入を取り入れた代価
3.2 評価の環境モデル
3.2.1 評価の規則
3.2.2 単純な手続きの作用
3.2.3 局所変数の入れ物としてのフレーム
3.2.4 内部定義
3.3 可変データでのモデル化
3.3.1 可変リスト構造
3.3.2 キューの表現
3.3.3 表の表現
3.3.4 ディジタル回路のシミュレータ
3.3.5 制約の拡散
3.4 並列性: 時が本質的
3.4.1 並列システムでの時
3.4.2 並列性の制御機構
3.5 ストリーム
3.5.1 ストリームは遅延リスト
3.5.2 無限ストリーム
3.5.3 ストリームパラダイムの開発
3.5.4 ストリームと遅延評価
3.5.5 関数的プログラムの部品化度とオブジェクトの部品化度
4 超言語的抽象
4.1 超循環評価器
4.1.1 評価器の中核
4.1.2 式の表現
4.1.3 評価器のデータ構造
4.1.4 評価器をプログラムとして走らせる
4.1.5 プログラムとしてのデータ
4.1.6 内部定義
4.1.7 構文解析を実行から分離する
4.2 Schemeの変形---遅延評価
4.2.1 正規順序と作用的順序
4.2.2 遅延評価の解釈系
4.2.3 遅延評価リストとしてのストリーム
4.3 Schemeの変形---非決定性計算
4.3.1 ambと探索
4.3.2 非決定性プログラムの例
4.3.3 amb評価器の実装
4.4 論理型プログラミング
4.4.1 推論的情報検索
4.4.2 質問システムはどう働くか
4.4.3 論理型プログラミングは数学的論理か
4.4.4 質問システムの実装
5 レジスタ計算機での計算
5.1 レジスタ計算機の設計
5.1.1 レジスタ計算機の記述言語
5.1.2 計算機設計における抽象
5.1.3 サブルーチン
5.1.4 再帰を実装するためのスタックの使用
5.1.5 命令の要約
5.2 レジスタ計算機シミュレータ
5.2.1 計算機モデル
5.2.2 アセンブラ
5.2.3 命令の実行手続きの生成
5.2.4 計算機の性能の監視
5.3 記憶の割当てとごみ集め
5.3.1 ベクタとしてのメモリー
5.3.2 無限メモリーの幻想の維持
5.4 積極制御評価器
5.4.1 積極制御評価器の中核
5.4.2 並びの評価と末尾再帰
5.4.3 条件式, 代入および定義
5.4.4 評価の実行
5.5 翻訳系
5.5.1 翻訳系の構造
5.5.2 式の翻訳
5.5.3 組合せの翻訳
5.5.4 命令列の組合せ
5.5.5 翻訳したコードの例
5.5.6 文面アドレス
5.5.7 翻訳したコードと評価器のインターフェース
0 件のコメント:
コメントを投稿