多くの関数は暗黙のうちに(訳注: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