pushnew

Title
pushnew
Type
Macro
Arguments
pushnew ITEM PLACE &KEY :test :test-not :key
Package
lisp
Section
リスト
File
setf.l
push とほぼ同じですが、リストの最上位に現れている要素でなければリストの
先頭に追加されます。追加するかどうかは、 :test もしくは :test-not で指定
される比較テストを使ってリストの全要素についてチェックして決められます。

  ITEM      : 登録する内容です。
  PLACE     : 登録する場所です。
  :test     : 比較関数です。標準では#'eql?
  :test-not : 比較関数です。
  :key      : キー判定用の関数です。標準では#'identity?

使用例:
  (setq *a* nil)                ;; この時 *a* の値は nil
  (pushnew 'a *a*)  => (a)      ;; この時 *a* の値は (a)
  (pushnew 'b *a*)  => (b a)    ;; この時 *a* の値は (b a)
  (pushnew 'a *a*)  => (b a)    ;; この時 *a* の値は (b a)

互換性:
  Common Lispとxyzzyにあり。
  muleは無さそう。
Seealso
push
adjoin