書籍概要

Haskell入門 関数型プログラミング言語の基礎と実践

著者
発売日
更新日

概要

基礎文法から実践的なアプリケーション開発までしっかりわかるHaskellの入門書です。型,関数,モナド,並列並行などHaskellの重要な考え方と実際にアプリケーション開発を行うまでをわかりやすく解説しています。

こんな方におすすめ

  • Haskellに入門したい人
  • Haskellの基礎を学んで実践的なアプリケーション開発をしてみたい人
  • 関数型プログラミングの技法を身に付けたい人

サンプル

目次

第1章 はじめてのHaskell

  • 1.1 Haskell の特徴
  • 1.2 実行環境の構築
  • 1.3 REPL とスクリプトの実行
  • 1.4 プロジェクト作成とビルド

第2章 基本の文法

  • 2.1 文法の特色
  • 2.2 基本のデータ型
  • 2.3 変数
  • 2.4 関数
  • 2.5 main 関数とdo 式
  • 2.6 条件分岐とパターンマッチ
  • 2.7 データ構造
  • 2.8 ループの実現
  • 2.9 モジュールとパッケージ

第3章 型・型クラス

  • 3.1 型の記述
  • 3.2 型システム
  • 3.3 型コンストラクタと型変数
  • 3.4 代数的データ型
  • 3.5 レコード記法
  • 3.6 再帰的な定義
  • 3.7 型の別名
  • 3.8 型クラス
  • 3.9 型制約
  • 3.10 Preludeにおける型クラス

第4章 I/O処理

  • 4.1 IO 型
  • 4.2 コマンドライン引数と環境変数
  • 4.3 入出力
  • 4.4 ファイルシステム
  • 4.5 例外処理

第5章 モナド

  • 5.1 モナドアクション
  • 5.2 Monad の性質を利用する
  • 5.3 Functor とApplicative
  • 5.4 Either eモナドとExcept e モナド
  • 5.5 Reader r モナド
  • 5.6 ST s モナド
  • 5.7 リストモナド
  • 5.8 モナド変換子

第6章 関数型プログラミング

  • 6.1 型とプログラミング
  • 6.2 関数による抽象化
  • 6.3 代入文と変数の局所性
  • 6.4 型クラスと拡張性

第7章 ライブラリ

  • 7.1 標準ライブラリ
  • 7.2 GHCに付属するライブラリ
  • 7.3 効率的な文字列操作 ─ ByteString・Text
  • 7.4 高速にランダムアクセス可能な配列 ─ vector
  • 7.5 高速なパーサ ─ attoparsec
  • 7.6 型安全なJOSN 操作 ─ aeson
  • 7.7 日付・時刻を扱う ─ time
  • 7.8 複雑なデータ構造への効率的なアクセス ─ lens
  • 7.9 モナドによるDSL の実現 ─ operational
  • 7.10 ストリームデータ処理 ─ pipes

第8章 並列・並行プログラミング

  • 8.1 並列と並行
  • 8.2 MVarによるスレッド間の通信
  • 8.3 STM によるスレッド間の通信
  • 8.4 非同期例外
  • 8.5 より安全な非同期 ─ async
  • 8.6 並列性を実現するライブラリ

第9章 コマンドラインツールの作成

  • 9.1 開発の準備
  • 9.2 HUnit による自動テスト
  • 9.3 パーサの作成
  • 9.4 クエリの実行とIO 処理
  • 9.5 まとめ

第10章 Webアプリケーションの作成

  • 10.1 Web アプリケーション環境の選定
  • 10.2 開発の準備
  • 10.3 モデルの開発
  • 10.4 コントローラの開発
  • 10.5 ビューの開発
  • 10.6 実行ファイルの作成
  • 10.7 まとめ

第11章 サーバとクライアントの連携

  • 11.1 開発の準備
  • 11.2 クライアント・サーバシステムの簡易実装
  • 11.3 オークションシステムの構築
  • 11.4 オークションシステムのクライアントプログラム
  • 11.5 まとめ

サポート

ダウンロード

サンプルファイルのダウンロード

(2017年10月26日更新)

本書のサンプルファイルをご利用いただけます。
サンプルファイルの利用方法についてはzipファイル内のREADME.mdを参照してください。
https://github.com/hiratara/Haskell-Nyumon-Sampleからgitでも取得できます。

ダウンロード
サンプルファイル

正誤表

本書掲載の記述に誤りがありました。訂正するとともに,読者の皆様および関係者の方々に深くお詫び申し上げます。

(2017年10月26日更新)

補足情報

本書では一部のリスト(ソースコード)について,重要部分を抜粋して表記しています。動作が不明な点はサンプルファイルと合わせてご確認ください。

(2017年10月26日更新)

商品一覧