Gaucheの構文(特殊形式)
Scheme言語では(<予約語> x y ..)のような形式のものを構文(syntax)と呼ぶ が、「構文」と呼ぶのはあまりにも紛らわしいしいので、区別するために「特殊形式(special form)」とも呼ぶらしい 「構文」は仕様レベルで定まっている呼び方mrsekut.icon
必須構文
以下の5つしか無い
set!
define
if
lambda
quote
この5つ以外の構文は、必須構文より導出できる
letとかorとか
上記のような例が構文になるのは、あらかじめifがグローバルな構文キーワードとして組込みで定義されているからです 『プログラミングGauche』.icon p.260
すなわち、Schemeには他の多くの言語にある「予約語」というものがありません
あくまでそれらの意味が初期値として設定されているだけだと考えられます
ん?とんち?mrsekut.icon
あー、本来の意味で予約語なら「if」という名前の変数も作れないだろってことか
gaucheはこういうのも書ける
code:lisp
(let ((if list))
(if 1 2 3))
ifという名前の変数にlist手続きを代入している