Haskellは、関数型プログラミングを研究する対象としての側面が強すぎ、一般的なアプリケーション構築を目的とした開発言語の側面が、おざなりにされがちでした。そのため、他の言語(JavaとかC/C++とかC#とか)がこなす、ありふれたアプリケーションをHaskellで構築しようとすると、キーボードを叩く指が止まってしまうことがありました。本書は関数型プログラミングの基本を押さえつつ、実用的なプログラムを書けるようなレベルに誘う一冊です。
もちろん、そのためにはプログラミング言語としての基礎的な知識や、Haskellならではの技法・手法の理解が欠かせません。本書では、最終的にI/Oを使用し、乱数を生成し、DBアプリケーションを作れるところまで道筋を示します。
二度とHaskellに触れないとしても、この言語(と、その思想)に触れることで、
・安全で機能的なコードを書くこと
・問題を注意深くモデル化すること
を身につけることができます。
つまるところ、抽象化についてより深く思考し、あらゆる言語によるコードの潜在的なバグの発見に繋がります。
また、プログラミング言語理論を理解する上での特訓にもなるはずです。というのも、Haskellの言語機能は、常に新しいプログラミング言語へ、そして既存の言語での新しい機能として発展しているからです。
この本は、
・プログラミングスキルとプログラミング言語の理解を次のレベルに引き上げたい、既存のプログラミング経験のある人
を対象としていますが、根気強く読み解いていけば、必ず視野は広がります。そして、Haskellとその機能をよく知っていれば、今後何年にもわたってプログラミングの地平線を越えて何が起きているのかを理解する上での足がかりとなります。
本書は
Will Kurt , "Get Programming with Haskell"
ISBN 9781617293764, Manning Publications Co., 2018 March
の日本語版です。
【本書のポイント】
・7つのユニットと42の短い章構成
・節ごとの理解度チェック
・章ごとの練習問題
・豊富な補足事項とポイント詳解
【読者が得られること】
・関数型プログラミングの基礎知識
・Haskellによる実用的なプログラミング能力
・抽象度の高い思考方法
  
  
  LESSON 1 Haskellを使用するための準備
UNIT 1 関数型プログラミングの基礎
 LESSON 2 関数と関数型プログラミング
 LESSON 3 ラムダ関数とレキシカルスコープ
 LESSON 4 ファーストクラス関数
 LESSON 5 クロージャと部分適用
 LESSON 6 リスト
 LESSON 7 再帰のルールとパターンマッチング
 LESSON 8 再帰関数の記述
 LESSON 9 高階関数
 LESSON 10 演習:関数型オブジェクト指向プログラミング
UNIT 2 型の紹介
 LESSON 11 型の基礎
 LESSON 12 カスタム型の作成
 LESSON 13 型クラス
 LESSON 14 型クラスを使用する
 LESSON 15 演習:秘密のメッセージ
UNIT 3 型によるプログラミング
 LESSON 16 直積型と直和型
 LESSON 17 合成によるデザイン:SemigroupとMonoid
 LESSON 18 パラメータ化された型
 LESSON 19 Maybe型:欠損値に対処する
 LESSON 20 演習:時系列
UNIT 4 HaskellのI/O
 LESSON 21 Hello World!:IO型の紹介
 LESSON 22 コマンドラインの操作と遅延I/O
 LESSON 23 テキストとUnicodeの操作
 LESSON 24 ファイルの操作
 LESSON 25 バイナリデータの操作
 LESSON 26 演習:バイナリファイルと書籍データの処理
UNIT 5 コンテキストでの型の操作
 LESSON 27 Functor型クラス
 LESSON 28 Applicative型クラス:関数をコンテキスト内で使用する
 LESSON 29 コンテキストとしてのリスト:Applicative型クラスをさらに掘り下げる
 LESSON 30 Monad型クラス
 LESSON 31 do表記を使ってMonadを扱いやすくする
 LESSON 32 リストモナドとリスト内包
 LESSON 33 演習:HaskellでのSQL形式のクエリ
UNIT 6 コードの整理とプロジェクトのビルド
 LESSON 34 Haskellコードをモジュールにまとめる
 LESSON 35 stackを使ってプロジェクトをビルドする
 LESSON 36 QuickCheckを使ったプロパティテスト
 LESSON 37 演習:素数ライブラリの作成
UNIT 7 実践Haskell
 LESSON 38 HaskellのエラーとEither型
 LESSON 39 HaskellでのHTTPリクエストの作成
 LESSON 40 Aesonを使ったJSONデータの処理
 LESSON 41 Haskellでのデータベースの使用
 LESSON 42 Haskellでの効率的でステートフルな配列
APPENDIX A あとがき:次のステップ
 A.1 Haskellをさらに詳しく調べる
 A.2 Haskellよりも強力な型システム
 A.3 他の関数型プログラミング言語
APPENDIX B 練習問題の解答
葉 さん
2019-08-19
実用度重視のHaskell(ハスケル)入門書。Haskellは純粋関数型プログラミングらしい。自分自身は、STATAとMATLABをメインに少しRをい使ったことしかないので、Haskellに興味がわいた。安全で機能的なコードを書く、問題を注意深くモデル化することが何よりも重要となる。Haskellによる実用的なプログラミング能力の部分は非常に有益だった。インストールしたら必ず購入しようと思う。