Spec-Zone.ru › Elisp

Предикаты для списков

Следующие предикаты проверяют, является ли объект Lisp атомом, является ли он ячейкой cons или списком, или же это выделенный объект nil. (Многие из этих предикатов можно определить через другие, но они используются так часто, что их стоит иметь.)

Функция: consp объект

Эта функция возвращает t если объект является ячейкой cons, nil в противном случае. nil не является ячейкой cons, хотя и является списком.

Функция: atom объект

Эта функция возвращает t если объект является атомом, nil в противном случае. Все объекты, кроме ячеек cons, являются атомами. Символ nil является атомом и также является списком; это единственный объект Lisp, который является и тем, и другим.

(atom object) ≡ (not (consp object))
Функция: listp объект

Эта функция возвращает t если объект является ячейкой cons или nil. В противном случае она возвращает nil.

(listp '(1))
     ⇒ t
(listp '())
     ⇒ t
Функция: nlistp объект

Эта функция является противоположностью listp: она возвращает t если объект не является списком. В противном случае она возвращает nil.

(listp object) ≡ (not (nlistp object))
Функция: null объект

Эта функция возвращает t если объект является nil, и возвращает nil в противном случае. Эта функция идентична not, но для ясности мы используем null когда объект рассматривается как список и not когда он рассматривается как значение истинности (см. not в Объединении условий).

(null '(1))
     ⇒ nil
(null '())
     ⇒ t
Функция: proper-list-p объект

Эта функция возвращает длину объекта, если он является правильным списком, nil в противном случае (см. Ячейки cons). Помимо удовлетворения listp, правильный список не является циклическим и не содержит точек.

(proper-list-p '(a b c))
    ⇒ 3
(proper-list-p '(a b . c))
    ⇒ nil

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/List_002drelated-Predicates.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API