Go to the first, previous, next, last section, table of contents.

コンスセルやリストを作る

多くの関数は暗黙のうちに(訳注:implicitely) リストを作りますが、それらは最終的 には(訳注:ultimately) コンスセルから cons でリストを作ります。 (本当??)

Function: cons object1 object2

この関数は、新しくリストを作る際、(主に) 用いる関数です。これは object1 を car、 object2 を cdr として、コンスセルを(新しく)作り、この新しいコンスセ ルへのポインタを返します。 (通常はリストですが) object2 が特定のあるタイプ でなくてはならないという制限はありません。

  (cons 1 '(2))
  => (1 2)
  (cons 1 '())
  => (1)
  (cons 1 2)
  => (1 . 2)

Function: list &rest objects

この関数は、 objects を要素とするリストを作ります。結果として返されるリス トは(常に) nil でターミネート(訳注:終端)されています。 objects が与えられ ない場合、 empty リストを返します。

  (list 1 2 3 4 5)
  => (1 2 3 4 5)
  (list)
  => nil

Function: make-list integer object

この関数は、各要素が object である長さ integer のリストを作ります。

  (make-list 3 'pigs)
  => (pigs pigs pigs)
  (make-list 0 'pigs)
  => nil

Function: append &rest sequences

この関数は、 sequences の(全ての)要素を含むリストを返します。最後の 1 つを 除いたアーギュメントは(全て)コピーされ、変更されることはありません。 empty シーケンスは結果に何の影響も及ぼしませんが、最後に置かれた nil アーギュメ ントはその前のアーギュメントのコピーを作らせることになる点に注意して下さ い。

1つの機能として、 (integer のシーケンスではなく) sequences の(要素の) 1つ が ingeter である(特別な)場合、最初にそれを(その) integer の 10進 print 表

現のストリングに変換します。

最後のアーギュメントは、どんなオブジェクトであってもかまいませんが、(通常) これはリストで、コピーされたり変換されることはありません。 sequences が与 えられない場合、nil を返します。

リストを繋げる別の方法に関しては、セクション 6.4 [nconc]、ページ 54 を参照 して下さい。シーケンスのコピーを行なう別の方法に関しては、セクション 7.1 [copy-sequence]、ページ 59 を参照して下さい。

(setq x '(1 2 3))               > (1 2 3)
(append x '(4 5))               > (1 2 3 4 5)
x                               > (1 2 3)
(eq x (append x nil))           > nil
(append nil x [4 5] "67" nil)   > (1 2 3 4 5 54 55)
(append)                        > nil


Go to the first, previous, next, last section, table of contents.