Haskell勉強会

関数型プログラミングの学習日記

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

Haskellの本を買いました。

これまでに買ったHaskellの本と少し違う切り口の説明なので、Haskellの学習方法について参考にしてみたいと思います。

 

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

 

 

目次

Haskell入門 関数型プログラミング言語の基礎と実践:書籍案内|技術評論社

 

第1章 はじめてのHaskell

 1.1 Haskell の特徴

  1.1.1 関数型プログラミング言語

  1.1.2 静的型付け

  1.1.3 純粋性

  1.1.4 型推論

  1.1.5 遅延評価

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

 

著者紹介

Haskell入門 関数型プログラミング言語の基礎と実践:書籍案内|技術評論社

著者プロフィール


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

株式会社フリークアウト所属。

北海道苫小牧市出身。

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

 

出版社情報

https://gihyo.jp/book/2017/978-4-7741-9237-6

gihyo.jp

 

書評

「第10章 Webアプリケーションの作成」を読んでみたくて、本書を買いました。

最初に第10章を読んでみて、後で他の章も見てみたいと思います。

各章のレビューは、気が向いたら書いてみます。(自分用のメモとして)