コロン

「:」をdefineしようとすると以下のエラーになる

gosh> (define : cons)
*** ERROR: Compile Error: syntax-error: (define : cons)

R5RSには以下のように書いてある。

拡張アルファベット文字は、識別子の中で文字のように使用することができる。拡張アルファベット文字は次のものである。

! $ % & * + - . / : < = > ? @ ^ _ ~
http://www.sci.u-toyama.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html#SEC16

それなのに、Gaucheで「:」がシンボルに使えないのはキーワードを作るリーダーマクロになっているからか?

Gauche ユーザリファレンス: 6.6 キーワード
Reader syntax: :name
名前が name であるキーワードとして読み込まれます。 (先行する ':' は、キーワードの名前の一部ではないことに注意してください。)

http://practical-scheme.net/gauche/man/gauche-refj_44.html

確かに「:」はキーワードだ。無理に関数呼び出ししようとしたときのエラーも違う。

gosh> (symbol? ':)
#f
gosh> (keyword? ':)
#t
gosh> (: 1 2)
*** ERROR: invalid application: (: 1 2)
gosh> (f 1 2)
*** ERROR: unbound variable: f