投稿者Ken2018年6月25日
形式: 単行本(ソフトカバー)
まず、この日本語訳の本は読んでもいません。
原書は
Learn You a Haskell for Great Good!
で、Webで無償公開されているので、英語が読める人はもちろん、読めない人も勉強をかねて原書を読むことをおすすめします。
表示 - 非営利 - 継承 3.0 非移植 (CC BY-NC-SA 3.0)ライセンスとして無償公開されているのですが、なぜこの日本語訳が有償で出版できているのか理解に苦しまみます。翻訳者のブログには、
>入門書としての出来の良さに惚れ込んで原著者の Miran Lipovača さんに 翻訳したい旨を伝えたのが発端でした。ちょうど去年の夏頃でしたか。 そうこうしているうちに、オーム社の鹿野さんから出版のお話を頂いて、 トントン拍子で進んで行きました。
とだけあり、私が知る限りこれ以上の情報はWebにはなかったのですが、非営利継承ライセンスのWebで誰でも読める原書の翻訳が結構な値段で販売されている、ということは、特に今の情報共有が容易になった時代、道理としてよろしくないと感じます。
以上の理由で、この翻訳書については★1です。繰り返しとなりますが、無償で公開されている原書を読めば良いので。
次に、原書自体ですが、これだけの内容のものを楽しいイラストつきで無償でWebに公開している、というのはやはり絶賛に値するとは思います。
ただしかし、原文を読んでも感じることですが、自分は訳文のほうは読んでいないので、他のここのレビュワーの方による和訳を再引用させていただくと、
p34
最後に ーーー 型クラスに関するいくつかの注意
型クラスは抽象的なインターフェイスとして定義されているので、
1つの型はいくつもの型クラスのインスタンスになることができるし、
1つの型クラスはいくつもの型をインスタンスとして持てます。
例えば、Char型をインスタンスとする型クラスはたくさんあって、
その中にはEqとOrdクラスがあり、
これは2つの文字は等値性比較とアルファベット順の比較の両方ができるからです。
型をある型クラスのインスタンスにするために、
いったん別のインスタンスにする必要があることがあります。
例えば、Ordクラスのインスタンスになるには、
先にEqクラスのインスタンスになる必要があります。
言い換えれば、Eqクラスのインスタンスであることは
Ordクラスのインスタンスになるための必要条件です。
2つのものが順序付けられるということは、
それらが等しいかどうかも分かるはずだ、
と考えれば納得できるでしょう。
Char=文字列
Eq=同値
Ord=順列
という感じなので、これは果たして言われるほど入門書としては最適なのか?
原文も訳文も、かなり冗長で読むのはしんどいのじゃないか、と思います。
コメントで原著者の許可があれば構わないとありますが、 たしかに、原著者による「商用利用」の許可があればそのとおりです。しかし、訳者のブログはでは、翻訳許可はあった、そしてその後から商業出版がトントン拍子で進んだ、ということですから、私が見る範囲内では、原著者が商業出版を許可しているとは読めないですし、もしどこかにそういう表明があればご教授ください。
鹿野桂一郎
訳者のブログに登場している鹿野といいます。本書はCC BY-NC-SAで公開されている記事に対する勝手な翻訳物ではなく、Lipovača氏がNo Starch Press社から書籍として出版している著作物(もちろん有償です)に対する翻訳であり、公式にNo Starch Press社との間で翻訳権の契約を取り交わしたうえで翻訳発行されたものです。したがって、No Starch Press社を通じ、有償の翻訳書としてLipovača氏の許諾を受けている書籍になります。なお、翻訳の実務にあたっては、内容はもちろん装丁(Lipovača氏本人のイラストを利用しています)の面でもLipovača氏から直接の協力と支持を得ています。