В Схеме использование list
для определения списка гарантирует, что результат является правильным списком, а это означает, что его последний элемент является списком ()
.
Если определен тестовый список:
(define test (list 27 3))
И, взяв length
списка, Ракет говорит, что это 2. Когда один prints
список, он отображает только (27 3)
, не показывая ()
.
Однако, если взять (rest (rest test))
, появляется ()
.Выполнение (list-ref test 2)
приводит к ошибке.
Если ()
появляется как 3-й элемент в списке при cdr
просмотре элементов, почему он не считается членом списка?
Не приведет ли это к путанице между правильными и неправильными списками в Схеме?