Schemeによる記号処理入門#1
S式
- atom と () は S式である
- s1 と s2 が S式ならば (s1 . s2) は S式である。(s1 . s2) を ドット対(dotted pair) あるいは 点対と呼ぶ
- () は 空リスト(null list)と呼ばれ nil と書くこともある
- . の 前後には ( や ) あるいは 一個以上の 空白を含めることとする
- s1 を car部(car field) あるいは car(カー) ,s2 を cdr部(cdr field) あるいは cdr(クダー) と呼ぶ
- 以下は S式である
- A, (A, ()), (a . b), (1 . (2 . 3))
- (1 . (2 . 3)) は 1 が car部 (2 . 3) が cdr部 である
- A, (A, ()), (a . b), (1 . (2 . 3))
リストとリスト記法
- si を S式 としたとき (s1 . (s2 . (s3 … . (sn . sn+1) … ))) を (s1 s2 s3 … sn . sn+1) と略記する。つまり .( ) を 一つの空白に置き換える。 最後の要素 sn+1が () あるいは nil である場合 (s1 s2 s3 … sn) と書ける