Will Kurt 著
株式会社クイープ 翻訳
株式会社クイープ 監修
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による実用的なプログラミング能力の部分は非常に有益だった。インストールしたら必ず購入しようと思う。