『Scheme手習い』に誤記のようなものを発見……か?

時間があまりなくて、まだ読み進めていないのだが、1点気になる記述を発見。

「はじめに」のxiiiページに、

atom? が読者のSchemeで正しく定義されているかどうかを知るには、 (atom? (quote 0)) として、#fが返ることを確かめてほしい。

と書いてあるのだが、これって #t が返る気がする。

Gauche 0.8.13のWindowsバイナリで、

(define atom?
  (lambda (x)
    (and (not (pair? x)) (not (null? x)))))

と本に書いてある通りに定義して実行すると #t が返ってくる。というか数値ないしシンボル*1はアトムのはずでは?

  1. #f と #t を間違えた。
  2. (quote 0) ではなく (quote ()) の間違い。

このどちらかだと思うのだが、私の勘違いだろうか? 個人的には2番目のような気がする。

*1:quoteしてるから数値じゃなくてシンボル、なのか? いや、数字で始まっているからシンボルじゃなくて数値のままなのか? その辺りはまだ分からない。