概要
OCamlは,フランスのINRIAで開発された関数型言語です。実行速度も速く,バグも作りにくい言語構造となっているため,一番実用的な関数言語といわれています。
本書は,このOCamlを通じて関数型言語のプログラミングを学ぶとともに,OCamlならではの実用的なプログラミングについて解説しています。
こんな方におすすめ
サンプル
目次
第1章 はじめに
- 1.1 この本の読み方
- 1.2 準備
- 1.3 OCamlに関する情報源
- 1.4 OCamlの特徴
- 1.5 OCamlの歴史
第2章 いろいろな式を評価してみよう
- 2.1 対話式コンパイラ
- 2.2 基本データ型とその演算
- 2.3 変数束縛による定義
第3章 関数型言語の醍醐味:関数
- 3.1 簡単な関数の定義
- 3.2 条件分岐と真偽値型bool
- 3.3 局所的変数束縛とlet式
- 3.4 構造のためのデータ型:組
- 3.5 再帰関数
- 3.6 高階関数
第4章 少ない手間で型付けをする:多相性と型推論
- 4.1 多相的関数とパラメトリック多相
- 4.2 型推論とlet多相
- 4.3 Case Study:コンビネータ
- 4.4 練習問題
第5章 再帰的多相的データ構造:リスト
- 5.1 リストの構成法
- 5.2 リストの要素へのアクセス:match 式とリストパターン
- 5.3 リストを操作するさまざまな関数
- 5.4 Case Study:整列アルゴリズム
- 5.5 練習問題
第6章 データ構造をデザインする:レコードとヴァリアント
- 6.1 レコード
- 6.2 ヴァリアント
- 6.3 ヴァリアントの応用
- 6.4 Case Study:二分木
- 6.5 Case Study:無限列
- 6.6 練習問題
第7章 例外処理
- 7.1 オプション型による例外処理
- 7.2 raise式とtry式による例外処理
- 7.3 exception宣言とexn型
- 7.4 練習問題
第8章 書き換え可能なデータ構造と入出力を使った命令型プログラム
- 8.1 unit型
- 8.2 書き換え可能なデータ構造
- 8.3 制御構造
- 8.4 Case Study:参照を使ったデータ構造ーーキュー
- 8.5 チャネルを使った入出力
- 8.6 練習問題
第9章 モジュールによるプログラムの構造化
- 9.1 ライブラリ・モジュールの使い方
- 9.2 モジュール定義
- 9.3 シグネチャを使った情報隠蔽と抽象データ型
- 9.4 練習問題
第10章 バッチコンパイラと分割コンパイル
- 10.1 バッチコンパイラによる実行可能ファイルの作成
- 10.2 モジュール単位の分割コンパイル
- 10.3 システム周りの関数・モジュール
- 10.4 その他
- 10.5 練習問題
第11章 モジュール関数:ファンクター
- 11.1 ライブラリモジュールのファンクターとファンクター適用
- 11.2 ファンクター定義
- 11.3 ファンクターと情報隠蔽
- 11.4 複数の引数をとるファンクター
- 11.5 練習問題
第12章 OCamlの“O”:オブジェクト
- 12.1 単純なクラス
- 12.2 自分自身のメソッドを呼び出す
- 12.3 継承によるクラスの拡張
- 12.4 オブジェクトのための型付け
- 12.5 より高度なクラス機能・型
- 12.6 練習問題
第13章 ラベル付き引数とオプション引数
- 13.1 ラベル付き関数を使う
- 13.2 ラベル付き引数詳説
- 13.3 オプション引数
- 13.4 まとめ
第14章 多相ヴァリアント
- 14.1 多相ヴァリアントの基本
- 14.2 関数定義の拡張
- 14.3 再帰的関数と多相ヴァリアント
- 14.4 その他
- 14.5 練習問題
第15章 GUI ライブラリ:LablTk
- 15.1 「銀行窓口」を作ってみる
- 15.2 ウィジェットの紹介
- 15.3 ウィジェットの配置:Tk.pack関数とPackモジュール
- 15.4 イベント処理の割り当て:bind
- 15.5 その他
- 15.6 練習問題
第16章 Case Study:お絵かきロジック
- 16.1 お絵かきロジックとは?
- 16.2 プログラム解説
- 16.3 まとめ
APPENDIX:A OCaml処理系などのインストール
- A.1 Windows環境へのインストール
- A.2 Linux環境へのインストール
APPENDIX:B OCaml Browserの使い方
- B.1 エディタの起動法・使い方
- B.2 シェル(コンパイラ窓)の使い方
- B.3 ライブラリブラウザの使い方
APPENDIX:C ocaml-modeの設定・使い方
- C.1 プログラム編集のためのコマンド
- C.2 シェルバッファでのコマンド
サポート
補足情報
著者の五十嵐淳さんのサイトにおいて,本書のサポートページが開設されています。