監修者の川合氏が開発した Scheme 処理系 Gauche を用いて、Scheme の基礎から応用までを幅広く扱う。
本書が出版されたのが 2008 年であり、この記事を書いているのが 2020 年だ。 本書記載の内容は Gauche 0.8.13 に基づくもので、私がチェックに使っている Gauche 0.9.9 とは異なるから、 当然両者は異なる。
gosh> (lambda (a b) (+ (* a a) (* b b))) #<closure (#f a b)>
本書では #<closure (#f)> である。
gosh> car #<subr (car obj)>
本書 p.313 では #<subr car> である。subr はサブルーチン (subroutine) のことだろうか。 実際には、subr は組込みの手続きと呼ばれている。
gosh> map #<closure (map proc lis . more)>本書 p.314 では #<subr map> である。実装が変わっているのだろうか。
本書 p.314 では、「とにかくしらないものに出会ったら対話モードでそれ自身を打ち込んでみましょう。」 とある。おもしろい。
監修者である川合氏は、本書で「PC のキーボードを打つのに疲れるとピアノの鍵盤に向かう。」 とある。どんな曲を弾くのだろうと気になっていたら、 同氏の Gauche ユーザリファレンス:ソートとマージ (practical-scheme.net) というページを見て驚いた。ソートの例がこうだったのだ。
(sort '(("Chopin" "Frederic") ("Liszt" "Franz") ("Alkan" "Charles-Valentin")) string>? car) ⇒ (("Alkan" "Charles-Valentin") ("Chopin" "Frederic") ("Liszt" "Franz"))
川合氏は、ショパンのほかに、リストやアルカンを弾いているということなのだろうか。アルカンを弾くとは凄い。
p.78最終行、「リストつなげる手続き」→「リストをつなげる手続き」
p.79 上から2行め、「その唯一の引数(argsのcdr)」→「その唯一の引数(argsのcar)」。なお、 これを反映した append の定義は、(car args) となっている。
p.329 の本文上から1行目「モジュールそものもを取得する」→「モジュールそのものを取得する」。
「はじめに」の vii で、本書のサポートページの URL が書かれているが、 このサイトはすでに廃止されている。
書 名 | プログラミング Gauche |
著 者 | Kahua プロジェクト |
監 修 | 川合 史朗 |
発行日 | 2008 年 3 月 13 日 初版第1刷 |
発 行 | オライリー・ジャパン |
定 価 | 円(本体) |
サイズ | ??版 |
ISBN | 978-4-87311-348-7 |
その他 | 越谷市立図書館南部図書室で借りて読む |
まりんきょ学問所 > 関数型言語 > Scheme Kahua プロジェクト:プログラミング Gauche