ASAHIネット(
[URL] )のjouwa/salonからホットコーナー(
[URL] )に転載したものから。
---
今年ももう12月になっちゃったよ〜。早く書かないと、今年が終わっちゃ
うよ〜ということで、がんばって書く。
[URL]
Haskellナイト、Graham Hutton著、山本和彦訳「プログラミングHaskell」
でちょっと紹介した
[URL]
プログラミングHaskell (単行本(ソフトカバー))
Graham Hutton (著), 山本 和彦 (翻訳)
目次などがあるオーム社のページは、
[URL]
プログラミングHaskell
これから述べるように、この翻訳は、いい仕事がしてあり、原書の間違いを
直してあったり、本としてもいろいろ工夫があるので、原書を買う理由はあま
りないとは思いますが、原書は、
[URL]
Programming in Haskell (ペーパーバック)
Graham Hutton (著)
サポートページは、
[URL]
をどうぞ。
さて、本書「プログラミングHaskell」を手に取った瞬間、感じたこと
薄(うす)っ!\(^O^)/
これなら、すぐ読めるわと思って、読み始めたけど、案に相違して、密度が
濃くてみっちり。しかも料理でいえば、味が濃いわけではない。薄味だが、い
いダシが効いて、滋味深い。
その要因は何かというと、簡潔明快な文章(原文がそうなんだろうが、山本
和彦訳もそう)であり、本文で使われる例題がよく考えられたいい例題である
こと。
本文の構成も、この手の入門書でよくある、文法や構文要素の羅列ではない。
コード例は、短い。しかし、数学に近い記法で仕様を書けばプログラムとし
て動くというHaskellらしい記述だから、短い割にかなりのことをやるコード
になっている。ほぉ、なるほど、こういうことが、こんなに短いコードできれ
いに書けるのかと思わせるコード例が多い。
これらが渾然一体となり、かつ、章毎にちゃんとストーリがあるので、各章
は短編小説の趣がある。したがって、本書全体は連作短編集と思える出来に仕
上がっている。
コード例のことをもう少し。
ほほぉと唸ったのは、「第5章 リスト内包表記」にあるシーザー暗号の解
読。こんな短いコードできれいに書けるのか。かっこいい。
それと、「第13章 プログラムの論証」。
最初にさらっと書いた効率の悪いプログラムを、数学的帰納法を使い、プロ
グラムを変形し、メモリ消費の少ない、実行スピードの速いコードにしていく
ところは、おお、素晴らしいと感動した。
ほぼ100%のプログラマがやっている、当てずっぽうでコードを書き換える方
法でも、それよりずっと少ない割合のプログラマがやっている、プロファイラ
でプロファイリングしてホットスポットを書き換える方法でもないが、数学的
に正しい変形をしていくことで、元のプログラムの意味は変えず、効率だけが
アップしていく。マジックですね。
この部分の訳注では、原書は、日本人にはわかりにくい数学的帰納法の使い
方なので、著者の許可を得て書き直したなどということが書いてあった。
それで、この前、Haskellナイトに行ったときに、和彦君に訊いたの。
「あれ、どういう意味? イギリスじゃ、日本とは違う数学的帰納法の教え方
をしているの?」と。
すると、「イギリスでも日本と同じ数学的帰納法の教え方だが、原書のやり
方は、逆適用が多くてわかりにくかったので、書き直した」ということだった。
セコメントをする