IntやWordにビット操作をしたい場合は、Data.Bitsを利用します。再帰型が定義できると書いてありますが、例が載っていません。8.1節に、以下のようなわざと間違った例があります。使うと、正しいコードになります。(Int,[Tree])一般化してみましょう。いう仕組みなのか知りたい方は、珠玉のリスト・プログラミングを読んでください。初版では付録で解説していましたが、第2版にはこの付録を付けていません。12:01プログラミングHaskell第2版の補足Tweet広告を非表示にするもっと読むコメントを書く2019-08-13プログラミングHaskell第2版を翻訳しましたHaskellプログラミングHaskell第2版の翻訳とレビューが完了し、ラムダノートから発売されました。レビューしてくださった5名の方に、改めてお礼を申し上げたいと思います。閉じられたissueは177個ですが、複数の指摘を含むissueもあるので、大雑把に言って250箇所ぐらいは改善されたのだと思います。初版を買ってない方や、これからHaskellに入門したい人には、手放しでお勧めできます。この記事では、初版を持っているけど、第2版を買うべきか迷っている人に、どこが変わったのか説明します。書体コードが数学風の書体から、ブロック体になりました。Haskellに関する論文は、数学風の書体を使う伝統があって初版で採用されていましたが、これが一番不評でした。第2版では、奇を衒らわずに普通になりましたので、安心して読めると思います。利用するシステム利用するシステムが、HugsからGHCになりました。初版の翻訳の際にGHCに書き換えようかと迷い、思いとどまったのを後悔していましたが、これですっきりしました。初版ですべて問題を解いた人にも、数は多くはないですが、未知の問題が追加されています。原文の目次を比べてみましょう。compilers8章以降の構成が大幅に変わっています。パーサーの前にMoandを説明するので、パーサーのコードがそのまま動きます。章が4つ追加されています。MonadとFoldableには最新の状況が反映されています。詳しくは、訳者前書きを読んでください。まとめ前半はGHCに鞍替えしたことなどから差分が多く、後半は差分さえ取れないぐらい変わっています。debuggingHaskell私的なメモ。GHCを生でインストールし、cabalのラッパーであるcabを使っている。stackはたまに使うことがある程度。例外が起きた場所を探す以下で例外が起きたときにスタックトレースが取れる。-xcGHCiを使う方法もある。ボトルネックを探す以下で、プログラムの終了時にプロファイルが取れる。サーバの場合は、横から停止すればプロファイルが作られる。いうファイルが作られ、ヒーププロファイルが格納される。このファイルは、プログラムが実装されている間中育っていく。プログラムを終了する必要はない。サーバの実働中もヒーププロファイルが見れるので、監視に便利。描画するには、macOSだと以下のようにする。