概要 - ドット ペア(AutoLISP)

ドット ペアのリストには、必ず 2 つのメンバーを格納する必要があります。ドット ペアは、AutoLISP が図形定義データを管理するために使用するメソッドです。

ドット ペアを表すとき、リストのメンバーはピリオド( . )で区切ります。リスト処理関数のほとんどには、引数としてドット ペアを指定できないので、正しい種類のリストを関数に渡すよう注意しなければなりません。

ドット ペアは、「不適切なリスト」の例です。不適切なリストとは、最後の cdrnil でないリストです。cons 関数は、項目をリストの先頭に追加するだけでなく、ドット ペアを作成することもできます。cons 関数は、2 番目の引数が別のリストや nil 以外の場合、ドット ペアを作成します。

(setq sublist (cons 'lyr "WALLS"))
(LYR . "WALLS")

次の関数は、ドット ペアの処理に便利です。

次のコードで、ドット ペアの連想リストを作成します。

(setq wallinfo (list sublist (cons 'len 240.0) (cons 'hgt 96.0)))
((LYR . "WALLS") (LEN . 240.0) (HGT . 96.0))

assoc 関数は、連想リスト内のリストの順序に関係なく、連想リストから指定のリストを抽出し、それを返します。assoc 関数は、リストで指定されたキー要素を検索し、次のように、最初のインスタンスを返します。

(assoc 'len wallinfo)
(LEN . 240.0)

(cdr (assoc 'lyr wallinfo))
"WALLS"

(nth 1 wallinfo)
(LEN . 240.0)

(car (nth 1 wallinfo))
LEN