Gaucheの構文(特殊形式)
Scheme言語では
(<予約語> x y ..)
のような形式のものを構文(
syntax)と呼ぶ
が、「構文」と呼ぶのはあまりにも紛らわしいしいので、区別するために「特殊形式(
special form)」とも呼ぶらしい
「構文」は仕様レベルで定まっている呼び方

必須構文
以下の5つしか無い
set!
define
if
lambda
quote
この5つ以外の構文は、必須構文より導出できる
let
とか or
とか
>上記のような例が構文になるのは、あらかじめifがグローバルな構文キーワードとして組込みで定義されているからです
p.260
>すなわち、Schemeには他の多くの言語にある「予約語」というものがありません
>あくまでそれらの意味が初期値として設定されているだけだと考えられます
ん?とんち?

あー、本来の意味で予約語なら「if」という名前の変数も作れないだろってことか
gaucheはこういうのも書ける
lisp(let ((if list))
(if 1 2 3))
if
という名前の変数に list
手続きを代入している