アトムとリストと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式。

Schemeをはじめようと思う

巳年も終わったから Python も終わり、というわけでは決してないのだけど、新しい年には新しい言語を、ということで以前ちょっとだけ触ったことのある Scheme をはじめようと思う。
Windows で動作する Scheme 処理系はWindows 野郎のための Scheme 処理系 ― 年金ロボットをめざしてでいくつか紹介されているけど、あえて紹介からはずされている Gauche を使うことにする。理由は簡単、以前触った Scheme というのが Gauche だからだ。

まずは Gauche のインストールから。↓このページから Windows用バイナリインストーラをダウンロードした。バージョンは0.9.3.3。
 cf. http://practical-scheme.net/gauche/download-j.html
msi形式のインストーラなので、ダブルクリックして起動すればあとはすんなりとインストールできた。

コマンドプロンプトを起動して、goshと入力するとインタープリタがインタラクティブモードで起動する。

^o^ > gosh
gosh>

ここでいろいろ試してみればいいわけだな。

参考書には有名な「Scheme手習い」を使う。これまたずいぶん前に買ったきりほとんど読んでない本で、奥付には平成22年10月25日第1版第1刷発行とある。
[amazonjs asin=”4274068269″ locale=”JP” title=”Scheme手習い”]

それから、Gauche のオンラインマニュアルのページはここ。
 cf. Gauche ユーザリファレンス

さあ、はじめよう。