プログラミング in OCaml
〜関数型プログラミングの基礎からGUI構築まで〜
2007年11月30日紙版発売
2012年8月29日電子版発売
五十嵐淳 著
A5判/384ページ
定価3,058円(本体2,780円+税10%)
ISBN 978-4-7741-3264-8
ただいま弊社在庫はございません。
書籍の概要
この本の概要
OCamlは,フランスのINRIAで開発された関数型言語です。実行速度も速く,バグも作りにくい言語構造となっているため,一番実用的な関数言語といわれています。
本書は,このOCamlを通じて関数型言語のプログラミングを学ぶとともに,OCamlならではの実用的なプログラミングについて解説しています。
こんな方におすすめ
- 情報科学系の学生,研究者
- 関数言語に興味のある人
本書のサンプル
本書の一部ページを,PDFで確認することができます。
- サンプルPDFファイル(650KB)
本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。
目次
第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 シェルバッファでのコマンド
この本に関連する書籍
-
Haskell入門 関数型プログラミング言語の基礎と実践
基礎文法から実践的なアプリケーション開発までしっかりわかるHaskellの入門書です。型,関数,モナド,並列並行などHaskellの重要な考え方と実際にアプリケーション開...
-
はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる
Lisp・関数型プログラミングのメリットとは何か――副作用のないプログラミングがまず挙げられます。これでバグが圧倒的に少なくなります。さらにはコードの再利用がしや...
-
おいしいClojure入門
フランス人プログラマのニコラが,Clojureを包丁代わりにHadoopやRedisといった流行の素材を自由自在にプログラミングします。関数型プログラミングというと,敷居が高...
-
オブジェクト指向プログラマが次に読む本―Scalaで学ぶ関数脳入門
本書は,新たな知的刺激を求めるオブジェクト指向プログラマのための本です。本書では,オブジェクト指向と関数型のハイブリッド言語として最近注目を集めているプログ...