プログラミング Haskell 第 2 版(プログラミングハスケル ダイニハン)
- 著者:
- Graham Hutton/山本和彦(グラハムハットン/ヤマモトカズヒコ)
- 出版社:
- ラムダノート
- 出版日:
- 2019年08月20日頃
- ISBN:
- 9784908686078
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
Haskell は、 1990 年に誕生した歴史あるプログラミング言語です。強力な型推論を備えた、静的型付きで遅延評価の純粋関数型言語として知られています。 Haskell を知ることは、こうした概念の背景にある計算機の理論を知り、それが実際のプログラミングにどのような効果を及ぼすかを知ることでもあります。
本書では、さまざまな例題をとおして、関数の組み合わせによりプログラムを自在に構築する力を身に着けられます。
そして、その抽象化を支える型と型クラスについて知り、アプリカティブやモナド、 Foldable 、 Traversable といった型クラスによって整理された現代の Haskell プログラミングの姿を学べます。
さらに、プログラムを手続きではなく宣言として書くことの利点のひとつとしてプログラムの論証を体験し、その応用として、ソース言語の仕様からコンパイラーを算出するという高度な例題に挑戦します。
本書の原書にあたるのは "Programming in Haskell, 2nd Edition" です。
技書の森解説
関数型プログラミングに入門しようとして「何から読むべきか」を調べると、高い確率で名前が挙がるのが本書です。著者の Graham Hutton はノッティンガム大学で 20 年以上 Haskell を教えてきた研究者であり、その講義経験が本書の段階設計に直結しています。型、再帰、高階関数、モナドといった概念を、小さな例題を積み重ねながら無理のない勾配で導入する手腕は、英語圏のレビューでも繰り返し「 best introductory Haskell book 」と評されてきました。
本書の美点は、 Haskell を使って関数型の思考法そのものを教える点にあります。パターンマッチと再帰で問題を分割する感覚、型で仕様を表現する感覚、副作用を値として扱う感覚。これらは Haskell を離れたあとも、 Scala や Rust 、あるいは TypeScript のジェネリクス設計に至るまで応用が効きます。
ただし、手続き型言語しか触れたことがない人にとっては、第 8 章以降のモナドやパーサーコンビネータから抽象度が急に上がります。各章の演習を飛ばさず自分の手で解くことが理解の鍵であり、読み飛ばしでは消化しきれない種類の本です。純粋関数型の世界へ踏み出す最初の一冊として、定番の座を長く保っています。
言及 Qiita 記事 (6 件)
Scala 選定の結果と継続の方針 〜Advent Calendar 2016 Day 25 へのアンサー〜
♡ 55Scala, ポエム, プラットフォーム移行, 技術選定, アンサー記事Elixir版?①「プログラミングHaskell第2版」
♡ 45Haskell, Elixir継承によらないポリモーフィズム実現手法
♡ 41Haskell, Clojure, Scala, CommonLisp, ElixirElixir版?②「プログラミングHaskell第2版」
♡ 21Haskell, Elixir【Servant】 (1) Wai
♡ 11Haskell, Web, wai, warpHaskell入門からモナドまでを最速でマスターする Part 0: 準備
♡ 10Haskell, モナド