Next: List Elements, Previous: Cons Cells, Up: Lists [Contents][Index]
以下の述語はあるLispオブジェクトがアトムか、コンスセルか、リストなのか、またはオブジェクトがnilかどうかテストします(これらの述語の多くは他の述語で定義することもできるが、多用されるので個別に定義する価値がある)。
この関数はobjectがコンスセルならt、それ以外はnilをリターンする。たとえnilがリストであっても、コンスセルではない。
この関数はobjectがアトムならt、それ以外はnilをリターンする。シンボルnilはアトムであり、かつリストでもある。そのようなLispオブジェクトはnilだけである。
(atom object) ≡ (not (consp object))
この関数はobjectがコンスセルかnilならt、それ以外はnilをリターンする。
(listp '(1))
⇒ t
(listp '())
⇒ t
この関数はlistpの反対である。objectがリストでなければt、それ以外はnilをリターンする。
(listp object) ≡ (not (nlistp object))
この関数はobjectがnilならt、それ以外はnilをリターンする。この関数はnotと等価だが、明解にするためにobjectをリストだと考えるときはnull、真偽値だと考えるときはnotを使用すること(Combining Conditionsのnotを参照)。
(null '(1))
⇒ nil
(null '())
⇒ t
この関数はobjectが適正なリストならobjectの長さ、それ以外はnilをリターンする(Cons Cellsを参照)。適正なリストとはlistpを満足することに加えて、循環リストやドットリストでもない。
(proper-list-p '(a b c))
⇒ 3
(proper-list-p '(a b . c))
⇒ nil