Next: , Previous: Lists as Boxes, Up: Lists


5.3 リスト向け述語

以下の述語は、Lispオブジェクトが、アトムであるか、 コンスセル、つまり、リストであるか、 特別なオブジェクトnilであるか調べます。 (これらの多く述語は、それぞれ残りの述語で定義可能である。 しかし、多用するため、これらすべてを用意しておく価値がある。)

— Function: consp object

この関数は、objectがコンスセルならばtを返し、 さもなければnilを返す。 nilはコンスセルではないが、空リストである

— Function: atom object

この関数は、objectがアトムならばtを返し、 さもなければnilを返す。 コンスセルを除くすべてのオブジェクトはアトムである。 シンボルnilはアトムでもありリストでもある。 このようなLispオブジェクトはnilだけである。

          (atom object) == (not (consp object))
— Function: listp object

この関数は、objectがコンスセルかnilならばtを返す。 さもなければnilを返す。

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

この関数は、listpの反対である。 objectがリストでなければtを返す。 さもなければnilを返す。

          (listp object) == (not (nlistp object))
— Function: null object

この関数は、objectnilならばtを返し、 さもなければnilを返す。 この関数は、notと同一であるが、意図を明確にするために、 objectをリストと考えるときにはnullを使い、 objectを真理値と考えるときにはnotを使う (Combining Conditionsnotを参照)

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