#author("2019-07-28T23:39:23+00:00","default:sagasite","sagasite")
[[OCaml]]
#norelated
#contents

* プログラミングの基礎 [#qcbdf116]
#html{{
<table border="0" cellpadding="5"><tr><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4781911609/vertex9-22/" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51FBsJHo4EL._SL160_.jpg" border="0"></a></td><td> </td><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4781911609/vertex9-22/" target="_blank">プログラミングの基礎 (Computer Science Library)</a><br>浅井 健一<br>サイエンス社<br>2007-03-01<br>¥ 2484</td></tr></table>
}}

* 目次 [#pcff3bad]

| No. | 章 | 節 |h
|   1 | 第1章 はじめに								 | 1.1 デザインレシピ |
|   2 | | 1.2 使用する言語 |
|   3 | | 1.3 準備 |
|   4 | | 1.4 参考となる資料 |
|   5 | 第2章 基本的なデータ						 | 2.1 整数 |
|   6 | | 2.2 [[実数>Basic-of-programming_2-2]] |
|   7 | | 2.3 [[文字列>Basic-of-programming_2-3]] |
|   8 | | 2.4 真偽値 |
|   9 | | 2.5 そのほかのデータ |
|  10 | 第3章 変数の定義							 | 3.1 変数の必要性 |
|  11 | | 3.2 変数定義の構文 |
|  12 | | 3.3 変数の実行方法 |
|  13 | | 3.4 ほかの言語の変数との違い |
|  14 | 第4章 関数の定義							 | 4.1 関数定義の必要性 |
|  15 | | 4.2 関数定義の構文 |
|  16 | | 4.3 関数の型 |
|  17 | | 4.4 型推論と型チェック |
|  18 | | 4.5 関数の実行方法 |
|  19 | | 4.6 関数定義に対するデザインレシピ |
|  20 | 第5章 条件分岐								 | 5.1 条件分岐の必要性 |
|  21 | | 5.2 条件分岐の構文 |
|  22 | | 5.3 kyuyoの例 |
|  23 | | 5.4 式としてのif文 |
|  24 | | 5.5 条件分岐に対するデザインレシピ |
|  25 | | 5.6 真偽値を返す関数 |
|  26 | | 5.7 条件分岐の実行方法 |
|  27 | 第6章 さまざまなエラー						 | 6.1 構文エラー |
|  28 | | 6.2 未定義の変数 |
|  29 | | 6.3 型エラー |
|  30 | | 6.4 実行時のエラー |
|  31 | | 6.5 論理的なエラー |
|  32 | 第7章 組とパターンマッチ					 | 7.1 組の構文 |
|  33 | | 7.2 パターンマッチ |
|  34 | | 7.3 構造データに対するデザインレシピ |
|  35 | | 7.4 パターンマッチの実行方法 |
|  36 | 第8章 レコード								 | 8.1 レコードの必要性 |
|  37 | | 8.2 レコードの構文 |
|  38 | | 8.3 レコードとパターンマッチ |
|  39 | | 8.4 そのほかの記法 |
|  40 | | 8.5 ユーザによる型定義 |
|  41 | | 8.6 データ定義に対するデザインレシピ |
|  42 | | 8.7 駅名と駅間の情報の定義 |
|  43 | 第9章 リスト								 | 9.1 リストの構造 |
|  44 | | 9.2 リストの構文と型 |
|  45 | | 9.3 リストとパターンマッチ |
|  46 | | 9.4 再帰関数 |
|  47 | | 9.5 再帰関数に対するデザインレシピ |
|  48 | | 9.6 テンプレートの複合 |
|  49 | | 9.7 駅名リストと駅間リストの整備 |
|  50 | 第10章 再帰関数を使ったプログラミング		 | 10.1 関数のネスト |
|  51 | | 10.2 リストの中の最小値を求める関数 |
|  52 | | 10.3 局所変数定義 |
|  53 | | 10.4 パターンマッチつき局所変数定義 |
|  54 | | 10.5 ふたつのリストを結合する関数 |
|  55 | | 10.6 ふたつの昇順に並んだリストをマージする関数 |
|  56 | | 10.7 駅名・駅間リストからの情報の取得 |
|  57 | 第11章 自然数と再帰						 | 11.1 自然数の構造 |
|  58 | | 11.2 自然数に基づいた再帰関数 |
|  59 | | 11.3 ベキ乗を求める関数 |
|  60 | | 11.4 リスト上の再帰との違い |
|  61 | 第12章 ダイクストラのアルゴリズム			 | 12.1 グラフ上の最短路問題 |
|  63 | | 12.2 ダイクストラのアルゴリズム |
|  64 | | 12.3 アルゴリズムの正当性 |
|  65 | | 12.4 プログラムにおける頂点と辺の定義 |
|  66 | | 12.5 駅名の重複の除去 |
|  67 | 第13章 一般化と高階関数					 | 13.1 データの一般化 |
|  68 | | 13.2 関数の一般化とmap |
|  69 | | 13.3 多相型と多相関数 |
|  70 | | 13.4 値としての関数 |
|  71 | | 13.5 関数を返す関数 |
|  72 | | 13.6 確定点に隣接する点の最短距離の更新 |
|  73 | 第14章 高階関数を使ったリスト処理			 | 14.1 条件を満たす要素を取り出す関数 |
|  74 | | 14.2 各要素をまとめあげる関数 |
|  75 | | 14.3 局所関数定義 |
|  76 | | 14.4 名前のない関数 |
|  77 | | 14.5 infix関数とprefix関数 |
|  78 | | 14.6 完全数を求める関数 |
|  79 | 第15章 新しい形の再帰						 | 15.1 再帰関数の構造 |
|  80 | | 15.2 部分問題の生成 |
|  81 | | 15.3 補助関数の作成 |
|  82 | | 15.4 停止性の判定 |
|  83 | | 15.5 一般の再帰に対するデザインレシピ |
|  84 | | 15.6 最短距離最小の点の分離 |
|  85 | | 15.7 例の作成とデバッグについて |
|  86 | 第16章 情報の蓄積							 | 16.1 情報の欠落 |
|  87 | | 16.2 アキュムレータ |
|  88 | | 16.3 アキュムレータの活用 |
|  89 | | 16.4 最初の完動プログラム |
|  90 | | 16.5 プログラム作成のプロセス |
|  91 | 第17章 再帰的なデータ構造					 | 17.1 バリアント型 |
|  92 | | 17.2 木 |
|  93 | | 17.3 再帰的なデータ構造に対するデザインレシピ |
|  94 | | 17.4 2分探索木 |
|  95 | | 17.5 多相型の宣言 |
|  96 | | 17.6 停止性 |
|  97 | | 17.7 get_ekikan_kyoriの高速化 |
|  98 | | 17.8 全通りを尽くしていない場合の対処 |
|  99 | 第18章 例外と例外処理						 | 18.1 オプション型 |
| 100 | | 18.2 オプション型を使った例外処理 |
| 101 | | 18.3 オプション型を使った例外処理の問題点 |
| 102 | | 18.4 例外処理専用の構文 |
| 103 | | 18.5 例外処理の実際 |
| 104 | | 18.6 例外処理を使ったプログラミング |
| 105 | | 18.7 最短路問題における例外処理 |
| 106 | 第19章 モジュール							 | 19.1 モジュールの構文 |
| 107 | | 19.2 2分探索木のモジュール |
| 108 | | 19.3 モジュールインタフェース:シグネチャ |
| 109 | | 19.4 抽象データ型 |
| 110 | | 19.5 そのほかのシグネチャの宣言法 |
| 111 | | 19.6 ファイルの分割と分割コンパイル |
| 112 | | 19.7 2分探索木モジュールの使用 |
| 113 | 第20章 モジュールの開発					 | 20.1 赤黒木 |
| 114 | | 20.2 赤黒木への挿入 |
| 115 | | 20.3 赤黒木の再構成 |
| 116 | | 20.4 「または」のパターン |
| 117 | | 20.5 赤黒木のモジュール化 |
| 118 | | 20.6 open文 |
| 119 | 第21章 逐次実行							 | 21.1 副作用を持つ関数 |
| 120 | | 21.2 unit型 |
| 121 | | 21.3 逐次実行の構文 |
| 122 | | 21.4 実行中の変数の表示 |
| 123 | | 21.5 実行の順序 |
| 124 | | 21.6 スタンドアローンのプログラム |
| 125 | | 21.7 引数の渡し方 |
| 126 | 第22章 値の書き換えと参照透過性			 | 22.1 参照透過性 |
| 127 | | 22.2 呼び出し回数のカウント |
| 128 | | 22.3 参照型と値の書き換え |
| 129 | | 22.4 参照透過性の喪失 |
| 130 | | 22.5 変更可能なレコード |
| 131 | | 22.6 配列 |
| 132 | | 22.7 配列の変更 |
| 133 | 第23章 副作用命令を使ったプログラミング	 | 23.1 ダイクストラ法におけるデータアクセス |
| 134 | | 23.2 ヒープ |
| 135 | | 23.3 ヒープへの挿入 |
| 136 | | 23.4 そのほかの操作 |
| 137 | | 23.5 ヒープのインタフェース |
| 138 | | 23.6 副作用命令の影響について |
| 139 | | 23.7 ヒープ実装の概要 |
| 140 | 第24章 まとめ―プログラミングとは―		 | 24.1 OCamlを習得して |
| 141 | | 24.2 この先の道 |

* 出版社 [#n532744f]
- 「プログラミングの基礎」 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1160-1

* リンク [#g98b8301]
- お茶の水女子大学 理学部情報科学科 准教授 浅井健一さんインタビュー | IT系のインターンシップならエンジニアインターン
https://engineer-intern.jp/archives/11524
- 「プログラミングの基礎」
http://pllab.is.ocha.ac.jp/~asai/book/Top.html
- 「プログラミングの基礎」を使った授業紹介
http://pllab.is.ocha.ac.jp/~asai/book-mov/
- 浅井健一『プログラミングの基礎』の読書を捗らせるためのツール作りました - akimachoのはてなブログ
http://akimacho.hatenablog.com/entry/2015/03/05/122858
- デザインレシピ入力ページ
http://akimacho.github.io/design_recipe/


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS