Next: , Previous: , Up: Lists   [Contents][Index]


5.2 Predicates on Lists

以下の述語は、あるLispオブジェクトがアトムなのか、コンスセルなのか、それともリストなのか、またはオブジェクトがnilかどうかテストします(これらの述語の多くは、他の述語で定義することもできますが、多用されるので、定義する価値があるのです)。

Function: consp object

この関数は、objectがコンスセルの場合はt、それ以外はnilをreturnします。たとえnilはリストですが、コンスセルではありません。

Function: atom object

この関数は、objectがアトムの場合はt、それ以外はnilをreturnします。シンボルnilはアトムであり、リストでもあります。そのようなLispオブジェクトはnilだけです。

(atom object) ≡ (not (consp object))
Function: listp object

この関数は、objectがコンスセルかnilの場合はtをreturnします。それ以外はnilをreturnします。

(listp '(1))
     ⇒ t
(listp '())
     ⇒ t
Function: nlistp object

この関数はlistpの反対です。objectがリストでない場合はtをreturnします。それ以外はnilをreturnします。

(listp object) ≡ (not (nlistp object))
Function: null object

この関数は、objectnilの場合はt、それ以外はnilをreturnします。この関数はnotと等価ですが、明解にするために、objectをリストだと考えるときはnull、真偽値だと考えるときはnotを使用します(Combining Conditionsnotを参照してください)。

(null '(1))
     ⇒ nil
(null '())
     ⇒ t