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

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

紙版発売
電子版発売

B5変形判/432ページ

定価3,608円(本体3,280円+税10%)

ISBN 978-4-7741-9237-6

電子版

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

書籍の概要

この本の概要

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

こんな方におすすめ

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

この書籍に関連する記事があります!

関数型プログラミングを使いこなす
関数型プログラミングと聞いて皆さんは何を思い浮かべるでしょうか?

本書のサンプル

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

目次

第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 まとめ

著者プロフィール

本間雅洋(ほんままさひろ)

株式会社フリークアウト所属。北海道苫小牧市出身。PerlとGo言語を使って広告システムを構築する傍らで,Haskellを普及させるべく機会をうかがっている。著書に「FFmpegで作る動画共有サイト(毎日コミュニケーションズ,共著)」,訳書に「実用Git(オライリージャパン,共訳)」,他Web媒体等での執筆多数。
Twitter:@hiratara
GitHub:hiratara


類地孝介(るいちこうすけ)

FIVE Inc.所属。Haskellを好み,Haskellの機能の実務上での意義を考え,それらをまとめてHaskell勉強会等で発表している。業務では主にScalaを書いている。
Twitter:@ruicc
GitHub:ruicc


逢坂時響(おうさかときを)

株式会社オンザロード所属。プログラマとして経験を積みながら独自にHaskellを学習し有用性を訴える。 lensやOperationalモナド等,抽象度の高い概念の活用や解説が得意。ブログやSNS,勉強会等を通して広くHaskellの普及活動を行っている。
Twitter:@its_out_of_tune
GitHub:tokiwoousaka