アトムとリストとS式
Scheme ではすべてはS式だ。基本的なデータも、リストも、関数も全部、S式。 アトムもS式。アトムというのは、Scheme での最小単位のようなものらしい。括弧ではない文字からなる文字列(データとしての文字列とは違うことに注意)や数字の列がアトム。ちょっと確かめてみよう。
gosh> atom
*** ERROR: unbound variable: atom
Stack Trace:
_______________________________________
あれ、エラーになった。そうか、クォートしてやらないといけない。クォートすると文字の列をそのものとして扱ってくれる。
gosh> 'atom
atom
gosh> 12345
12345
gosh> '*abc$
*abc$
リストは、S式を括弧でくくったもの。リスト自体もS式なので、リストのリストも作ることができる。これも当然S式。
gosh> '(x y z)
(x y z)
gosh> '((x y) z)
((x y) z)
gosh> '()
()
最後のは空のリスト。これもS式。
