Sponsored links

【AutoLISP リスト】リストに要素を足す 関数 cons

Sponsored links
notebook AutoLISP
Photo by Suzy Hazelwood on Pexels.com
Sponsored links

関数 cons はリストの先頭に要素を足す関数です。

元のリストが無い場合(nil の場合)はリストが作成されます。

Sponsored links

予備知識

リストは値をひとまとめにできる便利な物です。

関数 cons

関数 cons は、リストの最初に要素を加える関数です。

引数は、リストに加える値とリストです。
戻り値は、値が加わったリストです。

例:

(setq Lst (list 2 3 4)) 

値を加えるリスト(2 3 4) を作成し、変数 Lst に入れました。
関数 cons を使ってリストの先頭に 1 を加えるには、(cons 1 Lst) です 。

(setq Lst (cons 1 Lst))

これで、先頭に 1が加わり、 変数 Lst のリストは (1 2 3 4) になりました。

文字列でも同じようにできます。

(setq Lst (list "book" "cake" "deer"))

リスト (“book” “cake” “deer”) の先頭に “apple” を加えます。

(setq Lst (cons "apple" Lst))

これで、リストは (“apple” “book” “cake” “deer”) になりました。

元のリストが無い場合 (nil の場合)

引数のリストがnilの場合、リストが作成されます。

(cons "apple" nil)

これで、リスト (“apple”) が戻り値になります。

関数 reverse

関数 reverse はリストの要素の順番を逆にする関数です。

(reverse (list 1 2 3 4))

戻り値は リスト (4 3 2 1) です。

関数 cons でリストに要素を加えていくと、リストの先頭に足されていくので、最初に加えた要素はリストの一番最後になります。

例えば、

(setq Lst (cons 1 Lst))
(setq Lst (cons 2 Lst))
(setq Lst (cons 3 Lst))
(setq Lst (cons 4 Lst))

このようにリストを作ると、(4 3 2 1) と、最後に足した要素が先頭に来ます。
足した順番のリストを作りたい時は、このreverse が便利です。

(setq Lst (cons 1 Lst))
(setq Lst (cons 2 Lst))
(setq Lst (cons 3 Lst))
(setq Lst (cons 4 Lst))

(setq Lst (reverse Lst))

これで、最初にリストに入れた要素が先頭に来る (1 2 3 4) というリストが出来ます。

ドットペアリスト

関数 cons にはドットペアリストを作成する機能もあります。
詳しくはこちらの記事を

まとめ

  • 関数 cons でリストの最初に要素を足すことが出来る。
  • 引数で渡すリストがnilの場合はリストが作成される。
  • 関数 reverse はリストの要素を逆順にする関数。

関連記事

nilは何もないという意味です。詳しくはこちらの記事で。

Comments