Предикаты для списков
Следующие предикаты проверяют, является ли объект 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