2

私はスキームを勉強していますが、最初の問題に遭遇しました:

(define x (cons (list 1 2) (list 3 4)))
(length x)
3

なぜ出力は 2 ではなく 3 なのですか? ×表示しました

((1 2) 3 4)

なぜそうではないの((1 2) . (3 4))ですか?

ありがとう。

4

2 に答える 2

2

こっちの方が見やすいかも。

あなたが持っている:

(cons (list 1 2) (list 3 4))

もし、あんたが

(define one-two (list 1 2))

あなたが持っている

(cons one-two (list 3 4))

これはと同等です

(cons one-two (cons 3 (cons 4 '())))

また

(list one-two 3 4)

これは

((1 2) 3 4)
于 2013-01-10T12:42:16.137 に答える
0

リストはスキームの基本的なデータ構造です。コンスは、オブジェクトのペアを作成するために使用されます。リストはコンスの連鎖です。例えば。list (1 2 3 4) は (cons 1(cons 2(cons 3(cons 4 '())))) と同じです。明確にするためにブロックポインタ表現を参照してください

于 2013-01-12T10:01:37.730 に答える