Следующий: Доступ к элементам списков, Предыдущий: Списки и ячейки Cons, Вверх: Списки [Оглавление][Указатель]
Следующие предикаты проверяют, является ли объект Lisp атомом,
является ли он ячейкой cons или списком, или является ли он
отличительным объектом nil. (Многие из этих предикатов могут быть
определены с помощью других, но они используются так часто, что стоит их иметь.)
Эта функция возвращает t, если object является ячейкой cons, nil
в противном случае. nil не является ячейкой cons, хотя является списком.
Эта функция возвращает t, если object является атомом, nil
в противном случае. Все объекты, кроме ячеек cons, являются атомами. Символ
nil является атомом и также является списком; это единственный объект Lisp,
который является обоими.
(atom object) ≡ (not (consp object))
Эта функция возвращает t, если object является ячейкой cons или
nil. В противном случае возвращает nil.
(listp '(1))
⇒ t
(listp '())
⇒ t
Эта функция противоположна listp: она возвращает t, если
object не является списком. В противном случае возвращает nil.
(listp object) ≡ (not (nlistp object))
Эта функция возвращает t, если object равен nil, и
возвращает nil в противном случае. Эта функция идентична not,
но для ясности мы используем not, когда object рассматривается как
логическое значение (см. not в Конструкции для объединения условий) и null в противном случае.
(null '(1))
⇒ nil
(null '())
⇒ t
Эта функция возвращает длину object, если это правильный
список, nil в противном случае (см. Списки и ячейки Cons). В дополнение к
удовлетворению listp, правильный список не является циклическим и не имеет точек.
(proper-list-p '(a b c))
⇒ 3
(proper-list-p '(a b . c))
⇒ nil
Следующий: Доступ к элементам списков, Предыдущий: Списки и ячейки Cons, Вверх: Списки [Оглавление][Указатель]