Lisp』を読んでいると、これはLisperのためだけの本にするのはもったいないなあと強く感じる。Grahamが書いていることの基底にはもっと普遍的な内容がある。『ハッカーと画家』としてまとめられたようなエッセイを通して、非Lisperであっても彼の思想に触れられるのはありがたいことだと思う。Lisp』に書かれている表面的なこと、つまり「マクロ」がどうでもいいかというと、そんなことはまったくない。「マクロがあるLispは最強」を超訳して対偶をとると「人手で繰り返すような作業を効率化できないシステムは屑」になる。Grahamは、マクロという仕組みが特筆すべきものであり、それがLispという道具を最強にしていると言っていると思うので、どんな道具であれ自分の使っている道具に適切なオレマクロレイヤを組み入れればそれなりに強力にできるよね、という意味で本当。ここ1~2年くらいの仕事では、原稿の文章構造(XMLだったり簡易的なタグがつけられた平文だったり)をLaTeXに変換して印刷所に渡すPDFを生成するようにしている。旧来のようなMacintosh上でのDTPソフトを使った組版作業を捨てている。Macintosh上でのDTPソフトを使った組版作業の何が悲しいかっていうと、だいたい技術書の原稿なんておなじような構造を持っているのに、それを毎度毎度人間が手作業でDTPソフト上に「絵」としてレイアウトしなきゃいけないとこ。ここで「毎度毎度」というのは、別の新しい本を作るたびだけじゃない。1冊の本の制作においてさえ、原稿に修正が入るたびに「絵」を描きなおす作業を繰り返さなければいけない。そんな三途の川で石を積み上げるような地獄から抜け出るのに必要なのは、まさにマクロ。TeXのマクロがその地獄から解放してくれる......ただし編集者を別な地獄に陥れるという方法で。前の地獄が虚しさに起因するとしたら、今度の地獄はマグマ溜まりに架かったつり橋を歩かされるみたいなものだ。いつ足を滑らせて丸焦げになるかわからない。おなじ歩くなら石橋を渡りたいので、TeXしかなかったらTeXのマクロで処理せざるを得ない処理の大部分を、TeXからは切り離してGaucheで実現しているのが現在の制作方法だといっていい。マクロの層をGaucheで提供するってこと。原稿の文章構造をGaucheでLaTeXのコードに展開し、それをpLaTeXで処理するわけだ。これだけでずいぶん歩きやすくなる。LaTeXの実行時にしか知りえない情報(ページの幅とかテキストの大きさとか)にかかわる部分は本質的には扱えないけど、それも汎用を目指さなければ抜け道がないわけではない(文字数や文字の大きさを書籍ごとに決めうちすることで擬似的に代用できる)。Lisp』のマクロに近いということ。マクロの言語(Gauche)とコンパイルの言語(LaTeX)が異なるという大きな違いはあるけど、Gaucheが採用している文法のおかげで、ただのテキスト処理のコードなのに見た目がCLのマクロっぽくなる。TeXの環境を定義するにはこんなコードを使っている。Lispを読んで初めて気付いた。すごいよGauche。(ちなみにdefine-tag-processは入れ子になった文章構造を再帰的にTeXに変換するコードに渡すためのクロージャとして定義したもの。)ところで、こういう「スクリプトで原稿をLaTeXに変換→PDFにコンパイル」という制作方法について、去年のはじめくらいまでは子供だましみたいだなあと卑下していた。本当はここでTeX界隈にも深く感謝すべきだと理解はしているけど、結局ぶーぶー言いながらTeXを使わざるをえない地獄にあえいでいる現状には満足すべきでないと思うので、自戒をこめてスルー。Lisp』とは関係ない話になってきた。Lisp』は、いま主編集者のhisashimさんが最後の追い上げをかけているので、早ければ3/24の週末には大きな書店で入手できるはずです。(13)Gaucheの単体テストで、副作用により標準出力に書き出す処理(displayとか)の動作をテストし...文字列を螺旋にそって描く。数学的帰納法は超限帰納法により証明します。超限帰納法は整列集合の性質から導かれます。たしかに大学の集...うすうす感じてたんだけど、どうやら僕の生き方は「むかつき駆動」らしい。考えているときに気がついた。(d...回文を作りたい。ようなプロシージャを使うのはいいけど、Schemeでは引数の評価順が規...call/ccは「引数を1つとる関数」である。出版される前の本の内容は、通常は著者や編集者に代表される「制作サイド」の人間にしか読まれない。専門性の高い本であれば査読とか監修といったプロセスを有識者にお願いすることはあるけど、そうしたお願いをするときには有償だったりカバーや袖に名前を出したりすることが多いので、これも「...職務経歴書いろいろあって職務経歴書を作成してみることにしました。機能を使うのが一番お手軽です。編集をお手伝いしました。Blogger.自己紹介Unknown詳細プロフィールを。