Предикаты для списков
Следующие предикаты проверяют, является ли объект Lisp атомом, является ли он конс-ячейкой или списком, либо является ли он специальным объектом nil. (Многие из этих предикатов можно определить через другие, но они используются настолько часто, что их стоит иметь.)
- Функция: consp object
Эта функция возвращает
t, если object является конс-ячейкой, иnilв противном случае.nilне является конс-ячейкой, хотя является списком.
- Функция: atom object
-
Эта функция возвращает
t, если object является атомом, иnilв противном случае. Все объекты, кроме конс-ячеек, являются атомами. Символnilявляется атомом и также является списком; это единственный объект Lisp, обладающий обоими свойствами.(atom object) ≡ (not (consp object))
- Функция: listp object
-
Эта функция возвращает
t, если object является конс-ячейкой илиnil. В противном случае она возвращаетnil.(listp '(1)) ⇒ t(listp '()) ⇒ t
- Функция: nlistp object
-
Эта функция противоположна
listp: она возвращаетt, если object не является списком. В противном случае она возвращаетnil.(listp object) ≡ (not (nlistp object))
- Функция: null object
-
Эта функция возвращает
t, если object равенnil, и возвращаетnilв противном случае. Эта функция идентичнаnot, но для ясности мы используемnot, когда object рассматривается как логическое значение (см.notв разделе Конструкции для объединения условий), иnullв противном случае.(null '(1)) ⇒ nil(null '()) ⇒ t
- Функция: proper-list-p object
-
Эта функция возвращает длину object, если он является правильным списком, и
nilв противном случае (см. Списки и конс-ячейки). Помимо соответствияlistp, правильный список не является ни циклическим, ни точечным.(proper-list-p '(a b c)) ⇒ 3(proper-list-p '(a b . c)) ⇒ nil
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/List_002drelated-Predicates.html