サーチ…


前書き

ペアは、スキームの中で最も基本的なデータ型の1つです。これは通常コンスセルとも呼ばれます。

ペアを作成する

ペアはcons関数で作成できます。関数の名前はコンストラクタの略です。 Schemeでは、すべてがペアに基づいています。

(cons a b)

この関数は要素abを含むペアを返します。 consの最初のパラメータはcar (Content Address Register)と呼ばれ、2番目の引数はcdr (Content Decrement Register)です。

ペアの車にアクセスします。

ペア内のデータには、ユーティリティー機能を使用してアクセスできます。 carにアクセスするには、 car機能を使用する必要があります。

(car (cons a b))
> a

また、次の等式を検証することもできます。

(eq? a (car (cons a b)))
> #t

ペアのcdrにアクセスする

cdrにアクセスするには、cdr関数を使用する必要があります。

(cdr(cons ab))

b

また、次の等式を検証することもできます。

(eq?b(cdr(cons ab)))

#t

ペアのリストを作成する

List in schemeは、 cons cdrで互いにネストされた一連のペアである。そして、適切なリストの最後のcdrは空のリスト'()です。

リスト(1 2 3 4)を作成するには、次のようなものがあります:

(cons 4 '())
> (4)
(cons 3 (cons 4 '()))
> (3 4)
(cons 2 (cons 3 (cons 4 '())))
> (2 3 4)
(cons 1 (cons 2 (cons 3 (cons 4 '()))))
> (1 2 3 4)

ご覧のように、schemeのリストはペアで作られたリンクリストです。そのため、リストの先頭にオブジェクトを追加するのはほとんど時間がかかりませんが、リストの最後に要素を追加すると、リスト全体を通るように通訳が強制されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow