Поиск…


Вступление

Пара является одним из самых основных типов данных в схеме. Его также обычно называют cons-клетками.

Создать пару

Пара может быть создана с помощью функции cons . Имя функции обозначает конструктор . В Scheme все в значительной степени основано на парах.

(cons a b)

Функция возвращает пару, содержащую элементы a и b . Первый параметр cons называется car (Content Address Register), а вторым аргументом является cdr (Content Decrement Register).

Доступ к автомобилю пары.

Доступ к данным в паре можно получить с помощью служебных функций. Чтобы получить доступ к car , мы должны использовать функцию car .

(car (cons a b))
> a

Также мы можем проверить следующее равенство:

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

Доступ к cdr пары

Чтобы получить доступ к cdr, мы должны использовать функцию cdr.

(cdr (cons ab))

б

Также мы можем проверить следующее равенство:

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

#t

Создайте список с парами

Список в схеме - это не что иное, как серия пар, вложенных друг в друга в cdr cons . И последним 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)

Как вы можете видеть, список в схеме - это связанный список, составленный из пар. По этой причине добавление объекта в начало списка занимает почти нет времени, но добавление элемента в конце списка заставляет интерпретатор ходить по всему списку.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow