プログラミングHaskell第2版の翻訳とレビューが完了し、ラムダノートから発売されました。レビューしてくださった5名の方に、改めてお礼を申し上げたいと思います。閉じられたissueは177個ですが、複数の指摘を含むissueもあるので、大雑把に言って250箇所ぐらいは改善されたのだと思います。
初版を買ってない方や、これからHaskellに入門したい人には、手放しでお勧めできます。この記事では、初版を持っているけど、第2版を買うべきか迷っている人に、どこが変わったのか説明します。
書体
コードが数学風の書体から、ブロック体になりました。Haskellに関する論文は、数学風の書体を使う伝統があって初版で採用されていましたが、これが一番不評でした。第2版では、奇を衒らわずに普通になりましたので、安心して読めると思います。
利用するシステム
利用するシステムが、HugsからGHCになりました。初版の翻訳の際にGHCに書き換えようかと迷い、思いとどまったのを後悔していましたが、これですっきりしました。
完全な例題
初版ではパーサーのコードがそのままでは動かないという大問題がありましたが、第2版ではそんなことはありません。
章末問題
章末問題が増えました。初版ですべて問題を解いた人にも、数は多くはないですが、未知の問題が追加されています。
内容
原文の目次を比べてみましょう。
第2版 | 初版 |
---|---|
1 Introduction | 1 Introduction |
2 First steps | 2 First Steps |
3 Types and classes | 3 Types and Classes |
4 Defining functions | 4 Defining Functions |
5 List comprehensions | 5 List Comprehensions |
6 Recursive functions | 6 Recursive Functions |
7 Higher-order functions | 7 Higher-Order Functions |
8 Declaring types and classes | 10 Declaring Types and Classes |
9 The countdown problem | 11 The Countdown Problem |
10 Interactive programming | 9 Interactive Programs |
11 Unbeatble tic-tac-toe | |
12 Monads and more | |
13 Monadic parsing | 8 Functional Parsers + 9 Calc |
14 Foldables and friends | |
15 Lazy evaluation | 12 Lazy Evaluation |
16 Reasoning about programs | 13 Reasoning About Programs |
17 Calculating compilers |
- 8章以降の構成が大幅に変わっています。パーサーの前にMoandを説明するので、パーサーのコードがそのまま動きます。
- 章が4つ追加されています。MonadとFoldableには最新の状況が反映されています。詳しくは、訳者前書きを読んでください。
まとめ
前半はGHCに鞍替えしたことなどから差分が多く、後半は差分さえ取れないぐらい変わっています。