Schemeでペアを使用する
※ 以下はScheme初心者である私の勉強用のメモです。
間違っている可能性がありますので注意してください。
ペア
ペアとは2つ要素(element)を持つ構造体である。
Schemeにおけるペアのルール
- 2つの要素はそれぞれcar部とcdr部として区別される
- 異種のデータを混在して格納可能
なお、carはContent of Address part of Registerの略で、「カー」と発音し、cdrはContent of Decremental part of Registerの略で、「クダー」と発音する。
ペアを生成する
ペアを生成するにはcons式を使用する。
一般形
(cons オブジェクト1 オブジェクト2)
ペアの操作を行う
car
ペアのcar部を返すにはcarを使用する。
一般形
(car ペアを返す式)
例
> (car (cons 1 2)) 1 > (car (cons 1 (cons 2 (cons 3 (cons 4 5))))) 1 > (car (cons (cons 1 2) (cons 3 4))) (1 . 2)
cdr
ペアのcdr部を返すにはcdrを使用する。
一般形
(cdr ペアを返す式)
例
> (cdr (cons 1 2)) 2 > (cdr (cons 1 (cons 2 (cons 3 (cons 4 5))))) (2 3 4 . 5) > (cdr (cons (cons 1 2) (cons 3 4))) (3 . 4)