僕がEmacs Lispをいじるのは .emacs を書き換えるときくらい。
それで、ナントカ-alistの設定のとき、次のようなコードをよく見かけます。
(setq foo-bar-alist (cons '(name . value) foo-bar-alist))
これは、add-to-listを使って次のように書いたほうがスッキリするよね。
(add-to-list 'foo-bar-alist '(name . value))
add-to-listではさらに、同じ要素が重複して追加されることを防げます。setqのように自動的にクォートはされないので変数名(記号アトム)に「'」は必要です。
add-to-listの第3引数に非nil(Lisp風の真)を渡すと、新しい要素がリストの最後に追加されます。
(add-to-list 'foo-bar-alist '(name-two . value-two) t)
試しに:
(setq foo-bar-alist nil) (add-to-list 'foo-bar-alist '(name-one . value-one)) (add-to-list 'foo-bar-alist '(name-two . value-two) t) (add-to-list 'foo-bar-alist '(name-three . value-three))
これをまとめて実行(評価)すると、foo-bar-alistの値は、((name-three . value-three) (name-one . value-one) (name-two . value-two)) となります。