私はスキームを勉強していますが、最初の問題に遭遇しました:
(define x (cons (list 1 2) (list 3 4)))
(length x)
3
なぜ出力は 2 ではなく 3 なのですか? ×表示しました
((1 2) 3 4)
なぜそうではないの((1 2) . (3 4))
ですか?
ありがとう。
こっちの方が見やすいかも。
あなたが持っている:
(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)
リストはスキームの基本的なデータ構造です。コンスは、オブジェクトのペアを作成するために使用されます。リストはコンスの連鎖です。例えば。list (1 2 3 4) は (cons 1(cons 2(cons 3(cons 4 '())))) と同じです。明確にするためにブロックポインタ表現を参照してください