『Haskell入門』
https://gyazo.com/f5ef90c672cc118c6f03c569f580604e
著者
手にとった動機
6章以降の実用的なHaskellに触れたくて
1~5章は気が向いたら読む
読んでみてHaskell中級者向けな本という感じがするmrsekut.icon
10章からしか読んでないけど、少なくともその辺は。
1章~らへんたぶん誰でも読めると思う(読んでないのでしらんけど)
第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.9 型制約
3.10 Preludeにおける型クラス
第4章 I/O処理
4.1 IO 型
4.2 コマンドライン引数と環境変数
4.3 入出力
4.4 ファイルシステム
第5章 モナド
5.1 モナドアクション
5.2 Monad の性質を利用する
5.6 STモナド
第6章 関数型プログラミング
6.1 型とプログラミング
6.2 関数による抽象化
6.3 代入文と変数の局所性
6.4 型クラスと拡張性
第7章 ライブラリ
7.1 標準ライブラリ
7.2 GHCに付属するライブラリ
7.3 効率的な文字列操作 ─ ByteString・Text
7.4 高速にランダムアクセス可能な配列 ─ vector
7.7 日付・時刻を扱う ─ time
7.8 複雑なデータ構造への効率的なアクセス ─ Lens 第8章 並列・並行プログラミング
8.1 並列と並行
8.4 非同期例外
8.5 より安全な非同期 ─ async
8.6 並列性を実現するライブラリ
第9章 コマンドラインツールの作成
9.1 開発の準備
9.3 パーサの作成
9.4 クエリの実行とIO 処理
9.5 まとめ
第10章 Webアプリケーションの作成
この辺を使う
たぶん2021年現在では若干古い
作るものの概要
毎日の体重を記録するwebサービス
login, user登録
体重入力、体重一覧、グラフ
使ってるGHC拡張
FlexibleInstances
MultiParamTypeClasses
TemplateHaskell
DataKinds
DeriveGeneric
versionが違うからだろうけどそのまま書いても動かない箇所がたまにあるmrsekut.icon
Dtabase.Relational.Queryはなくなっているのでかわりに、Database.Relationalを使う
第11章 サーバとクライアントの連携
オークションシステムの開発
使ってるGHC拡張
型駆動