𝔖 Scriptorium
✦   LIBER   ✦

📁

プログラミングの基礎

✍ Scribed by 浅井健一


Publisher
サイエンス社
Year
2007
Tongue
Japanese
Leaves
284
Series
Computer Science Library 3
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


[内容紹介]
デザインレシピを用いてプログラミングに必要な思考法を学び,メトロネットワーク最短路問題を解きながらデータ構造とアルゴリズムを身につける,
関数型言語OCamlによる入門者のための教科・参考書.

[著者略歴]
浅井/健一
1992年東京大学大学院理学系研究科修士課程修了。東京大学助手を経て、お茶の水女子大学理学部情報科学科助教授。博士(理学)。専門はプログラミング言語(本データはこの書籍が刊行された当時に掲載されていたものです)

✦ Table of Contents


第1章 はじめに......Page 14
1.1 デザインレシピ......Page 15
1.2 使用する言語......Page 16
1.3 準備......Page 17
1.4 参考となる資料......Page 18
2.1 整数......Page 20
2.2 実数......Page 21
2.3 文字列......Page 23
2.4 真偽値......Page 24
2.5 そのほかのデータ......Page 26
3.1 変数の必要性......Page 27
3.2 変数定義の構文......Page 28
3.3 変数の実行方法......Page 29
3.4 ほかの言語の変数との違い......Page 30
4.1 関数定義の必要性......Page 31
4.2 関数定義の構文......Page 33
4.3 関数の型......Page 34
4.4 型推論と型チェック......Page 36
4.5 関数の実行方法......Page 37
4.6 関数定義に対するデザインレシピ......Page 39
5.1 条件分岐の必要性......Page 46
5.2 条件分岐の構文......Page 47
5.3 kyuyoの例......Page 48
5.4 式としてのif文......Page 49
5.5 条件分岐に対するデザインレシピ......Page 50
5.6 真偽値を返す関数......Page 54
5.7 条件分岐の実行方法......Page 57
6.1 構文エラー......Page 58
6.2 未定義の変数......Page 59
6.3 型エラー......Page 60
6.5 論理的なエラー......Page 61
7.1 組の構文......Page 63
7.2 パターンマッチ......Page 64
7.3 構造データに対するデザインレシピ......Page 67
7.4 パターンマッチの実行方法......Page 70
8.1 レコードの必要性......Page 71
8.2 レコードの構文......Page 72
8.3 レコードとパターンマッチ......Page 73
8.4 そのほかの記法......Page 74
8.5 ユーザによる型定義......Page 76
8.6 データ定義に対するデザインレシピ......Page 77
8.7 駅名と駅間の情報の定義......Page 80
9.1 リストの構造......Page 83
9.2 リストの構文と型......Page 85
9.3 リストとパターンマッチ......Page 87
9.4 再帰関数......Page 91
9.5 再帰関数に対するデザインレシピ......Page 94
9.6 テンプレートの複合......Page 98
9.7 駅名リストと駅間リストの整備......Page 102
10.1 関数のネスト......Page 104
10.2 リストの中の最小値を求める関数......Page 108
10.3 局所変数定義......Page 110
10.4 パターンマッチつき局所変数定義......Page 112
10.5 ふたつのリストを結合する関数......Page 115
10.6 ふたつの昇順に並んだリストをマージする関数......Page 116
10.7 駅名・駅間リストからの情報の取得......Page 118
11.1 自然数の構造......Page 120
11.2 自然数に基づいた再帰関数......Page 121
11.3 ベキ乗を求める関数......Page 123
11.4 リスト上の再帰との違い......Page 124
12.1 グラフ上の最短路問題......Page 125
12.2 ダイクストラのアルゴリズム......Page 126
12.4 プログラムにおける頂点と辺の定義......Page 131
12.5 駅名の重複の除去......Page 132
13.1 データの一般化......Page 133
13.2 関数の一般化とmap......Page 136
13.3 多相型と多相関数......Page 139
13.4 値としての関数......Page 141
13.5 関数を返す関数......Page 143
13.6 確定点に隣接する点の最短距離の更新......Page 146
14.1 条件を満たす要素を取り出す関数......Page 148
14.2 各要素をまとめあげる関数......Page 150
14.3 局所関数定義......Page 155
14.4 名前のない関数......Page 156
14.5 infix関数とprefix関数......Page 159
14.6 完全数を求める関数......Page 160
15.1 再帰関数の構造......Page 163
15.2 部分問題の生成......Page 164
15.3 補助関数の作成......Page 168
15.4 停止性の判定......Page 171
15.5 一般の再帰に対するデザインレシピ......Page 174
15.6 最短距離最小の点の分離......Page 176
15.7 例の作成とデバッグについて......Page 177
16.1 情報の欠落......Page 179
16.2 アキュムレータ......Page 180
16.3 アキュムレータの活用......Page 183
16.4 最初の完動プログラム......Page 186
16.5 プログラム作成のプロセス......Page 189
17.1 バリアント型......Page 190
17.2 木......Page 193
17.3 再帰的なデータ構造に対するデザインレシピ......Page 196
17.4 2分探索木......Page 198
17.5 多相型の宣言......Page 202
17.6 停止性......Page 204
17.7 get_ekikan_kyoriの高速化......Page 205
17.8 全通りを尽くしていない場合の対処......Page 207
18.1 オプション型......Page 210
18.2 オプション型を使った例外処理......Page 212
18.3 オプション型を使った例外処理の問題点......Page 213
18.4 例外処理専用の構文......Page 216
18.5 例外処理の実際......Page 219
18.6 例外処理を使ったプログラミング......Page 221
18.7 最短路問題における例外処理......Page 222
19.1 モジュールの構文......Page 224
19.2 2分探索木のモジュール......Page 226
19.3 モジュールインタフェース:シグネチャ......Page 228
19.4 抽象データ型......Page 230
19.5 そのほかのシグネチャの宣言法......Page 233
19.6 ファイルの分割と分割コンパイル......Page 234
19.7 2分探索木モジュールの使用......Page 236
20.1 赤黒木......Page 237
20.2 赤黒木への挿入......Page 238
20.3 赤黒木の再構成......Page 239
20.4 「または」のパターン......Page 240
20.5 赤黒木のモジュール化......Page 242
20.6 open文......Page 243
21.1 副作用を持つ関数......Page 245
21.2 unit型......Page 246
21.3 逐次実行の構文......Page 247
21.4 実行中の変数の表示......Page 249
21.5 実行の順序......Page 250
21.6 スタンドアローンのプログラム......Page 251
21.7 引数の渡し方......Page 254
22.1 参照透過性......Page 256
22.2 呼び出し回数のカウント......Page 257
22.3 参照型と値の書き変え......Page 258
22.4 参照透過性の喪失......Page 261
22.5 変更可能なレコード......Page 263
22.6 配列......Page 264
22.7 配列の変更......Page 266
23.2 ヒープ......Page 267
23.3 ヒープへの挿入......Page 268
23.4 そのほかの操作......Page 270
23.5 ヒープのインタフェース......Page 271
23.6 副作用命令の影響について......Page 273
23.7 ヒープの実装の概要......Page 274
第24章 まとめ― プログラミングとは―......Page 276
24.1 OCamlを習得して......Page 277
24.2 この先の道......Page 278
索引......Page 280


📜 SIMILAR VOLUMES


プログラミングのための線形代数
✍ 平岡和幸, 堀玄 共著 📂 Library 📅 2004 🏛 オーム社 🌐 Japanese

本書は、専門・非専門を問わずコンピュータにかかわる方を主な対象に想定した線形代数の参考書です。単に「線形代数プログラムの書き方」を解説する本ではなく、数学のプロでない読者に線形代数の本音を語ることが狙いです。

プログラミングのための確率統計
✍ 平岡和幸, 堀玄 共著 📂 Library 📅 2009 🏛 オーム社 🌐 Japanese

コンピュータサイエンスに携わる人のために書かれた確率統計の教科書 本書は、数式による定理の証明とその説明という数学教科書の一般的なスタイルとは異なったかたちで確率統計を解説している。数学的な概念のイメージを補うわかりやすい日本語と図表、そして動作するプログラム(本書では主に確率的な事象のシミュレーションに利用)により確率統計を理解させる。