Kahua プロジェクト:プログラミング Gauche

作成日 : 2020-11-20
最終更新日 :

概要

監修者の川合氏が開発した 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刷
発 行オライリー・ジャパン
定 価円(本体)
サイズ??版
ISBN978-4-87311-348-7
その他越谷市立図書館南部図書室で借りて読む

まりんきょ学問所関数型言語Scheme Kahua プロジェクト:プログラミング Gauche


MARUYAMA Satosi