Scheme手習い - The Little Schemer -

2010/10/20-1
Scheme手習い

最近、私のまわりでは様々な角度から多面的に話題な"Lisp"ですが、20年以上の歴史を持つLisp解説書の日本語翻訳版が2010年10月22日に新発売されます。 「Scheme手習い」です。

最近、私はインターネットのカタチに関して語るという本をオーム社で執筆しているのですが、そこでお世話になっている編集の方の熱い想いが、この訳本を実現しました。 この書籍への熱い想いがネット越しに伝わって来たので、遅れ遅れになっている私の原稿に関するミーティングを含めて、お話を聞きに行ってきました。

第4版の版権を得て翻訳

原著のおおもとである「The Little LISPer」は1974年にまでさかのぼります。 原著は何度か版が変わっていますが、1990年に邦題「Shecme手習い - 直感で学ぶLisp」としてマグロウヒル出版から刊行されたのは、1987年の版でした。 しかし、マグロウヒル出版の解散によって日本語版は絶版となってしまいました。

今回出版される「Scheme手習い」は、1996年に第4版としてThe MIT Pressから出版された「The Little Schemer - Forth Edition」の版権を取得して再度翻訳が行われたものです。 今回、翻訳を行われた方は、1990年に出版された古い方の「Scheme手習い」を翻訳された方です。

どんな本?

この本は、Lispの方言の一つであるSchemeを入門者用に解説したものです。 Lispそのものに関して丁寧に書いてあるとともに、Schemeの特徴も解説しています。

ただし、非常にクセがある書き方が行われています。 書籍のほとんどが質問とその答えという構成です。 しかも、質問の仕方と答えそのものがLispっぽいという、非常に凝った作りになっています。

いわゆる普通の書籍のような解説文がほとんどないのが凄いです。 質問と答えという形で解説が間接的に行われていますが、基本的に「質問と答え」だらけです。

最初のうちは非常に簡単な質問と答えなのですが、後半に行けば行くほど内容が難しくなっていくという構成になっているという特徴もあります。 まあ、結構マニアックだと思います。

この本の編集にSchemeが使われてます

今回出版された「Scheme手習い」は、書籍の編集段階でSchemeを利用しています。

オーム社開発局では、TeXかXML風のタグがついた原稿を利用して著者が執筆を行い、svnによって著者と編集者がバージョン管理された状態で原稿を推敲するという体制が実現しています。 「Scheme手習い」はXML風原稿+svnを利用して執筆されています(ただし、svnが利用できない訳者のために紙ベースでの原稿やり取りも行われました)。

まず、著者や編集者が直接作業を行うXML風原稿は、このようなものです。 XMLではなくXML風となっている理由ですが、「生原稿では、形式を決めず、なるべく自由度を大きくしたい」からとのことでした。

この原稿をsvnでcommitすると、自動的にXML風原稿からLaTeXへの変換が行われます。 この変換部分がSchemeで書かれています。

さらに、そのLaTeX文書が自動的にPDFへと変換されます。 著者は、svnでcommitを行った後に、PDFを確認することができます。

2年前に書いた稚拙文章なのですが、当時のオーム社開発局での開発体制については「オーム社開発部での開発体制」をご覧下さい。

この体制の凄さは、編集者によるチェックや修正が非常に細かい粒度で、随時行えるところです。 執筆者と同時に作業を行って競合が発生したとしても、svnによってバージョン管理されているので、容易に解決が可能です。 また、どこが変更されたかをさかのぼって確認することも可能なので、著者と編集者の間で誤解が生じる余地が減ります。

一度でも普通の出版社で執筆やDTP作業後の原稿修正を行った事がある方であれば、これの凄さがわかると思います。

何で企画会議、通ったんですか?

このお話を最初に聞いた時に思わず聞いてしまったのが「何で企画会議を通ったんですか?」という質問です。 「The Little Schemer」は非常に古い本で、Lispもかなりハードコアな言語だと思います。 社内会議を通すのが非常に大変だったのではないかと思いました。

今回のScheme本が出版できたのは、最近の関数型言語に関するプチブームが背景としてあるようです。 たとえば、最近、立て続けにオーム社から以下のような関数型言語本が出ていますが、どれも好調であるとのことでした。


プログラミングHaskell

関数プログラミングの楽しみ

プログラミングClojure

プログラミングErlang

実践Common Lisp
 

こういった微妙なトレンドが「Scheme手習い」を出版できるようになった背景としてあるようです。

編集の方は、ずっと前から社内で「The Little Schemerは素晴らしい本で、その日本語訳はいつか作りたい」と言っていたそうです。 その情熱が今の関数型言語プチブームに乗る形でやっと実現したのだろうと思います。

The Seasoned Schemer

「The Little Schemer」の続編である「The Seasoned Schemer」の翻訳も現在検討中であるようです。 Schemeをやっているとハマるcall/ccに関して詳しく書かれていることもあり、一部では既に「The Seasoned Schemer」の出版を希望する声が出ています。

ただし、本当に出版されるかどうかは、まだ公表されていません。

編集者からのコメント

編集者のかたからメールで頂いた「Scheme手習い」に関しての紹介です。

本書のメインテーマは「再帰的プログラミング」で、5章まではその基本をねちねちと叩き込まれます。 このあたりは、はじめて読むときにはつらいかも。
そこまでがんばって読むと、そこから先は「チャーチ数」とか「Yコンビネータ」といったコンピュータサイエンスの基本的な話題もさりげなく出てきて、知的興奮全開です。
最後には、Lispのようなものを実装までしてしまいます。 読者をコンピュータサイエンスの魅力に引きずり込むような、類まれな本だと思います。

熱い想いが全開です。

最後に

出版に関わったことがないと、「編集者」の仕事は単に著者からの原稿を修正するだけと考えている人も多い気がします。 しかし、実際には、今の出版社の編集者は企画者でもある場合も多いように思えます。

著者からの原稿持ち込みではない場合、書籍という商品企画者である編集者は以下のような作業をします。 自分が書籍として出版したいものの企画を練り、誰に執筆を依頼すれば良いのかを考え、社内で合意を形成し、執筆者に依頼し、スケジュール調整をしつつ原稿を見て、原稿が完成後に販売に関する調整を行います。 さらに、編集者が自分でマーケティングまで行う場合もあります。

そのような「商品企画者」としての情熱が、新しい「Scheme手習い」の復刊を実現したのだろうと思った今日この頃です。

追記

あどけない話:祝「Scheme 手習い」復刻」(kazuさんによるScheme手習いの書評)

おまけ:Lisp関連ネタ

最近のエントリ

過去記事

過去記事一覧

IPv6基礎検定

YouTubeチャンネルやってます!