プログラミング in OCaml
〜関数型プログラミングの基礎からGUI構築まで〜

[表紙]プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜

A5判/384ページ

定価(本体2,780円+税)

ISBN 978-4-7741-3264-8

ただいま弊社在庫はございません。

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

OCamlは,フランスのINRIAで開発された関数型言語です。実行速度も速く,バグも作りにくい言語構造となっているため,一番実用的な関数言語といわれています。

本書は,このOCamlを通じて関数型言語のプログラミングを学ぶとともに,OCamlならではの実用的なプログラミングについて解説しています。

こんな方におすすめ

  • 情報科学系の学生,研究者
  • 関数言語に興味のある人

本書のサンプル

本書の一部ページを,PDFで確認することができます。

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像

目次

第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 シェルバッファでのコマンド