Данный
#;> (cons (cons 1 2) 3)
((1 . 2) . 3)
Когда мы пытаемся
#;> (cons 3 (cons 1 2))
(3 1 . 2)
Что определяет, где используется .
? Каким будет представление памяти этих конструкций?
Данный
#;> (cons (cons 1 2) 3)
((1 . 2) . 3)
Когда мы пытаемся
#;> (cons 3 (cons 1 2))
(3 1 . 2)
Что определяет, где используется .
? Каким будет представление памяти этих конструкций?
Реализации схемы обычно печатают вещи, которые выглядят как списки в форме списка:
-> (cons 1 (cons 2 '()))
'(1 2)
В вашем примере (cons 3 (cons 1 2))
был бы списком, если бы не последний 2
. Таким образом, ваша реализация делает все возможное, чтобы напечатать его в виде списка до тех пор, пока 2
. Другой пример не содержит части, похожей на список, поэтому он просто печатается как вложенные пары.