Function ADJOIN
adjoin
item list &key key test test-not => new-list
item - オブジェクト
list - 通常のリスト
test - 2つの引数を取りgeneralized-booleanを返却する関数の指定子
test-not - 2つの引数を取りgeneralized-booleanを返却する関数の指定子
key - 1つの引数を取りgeneralized-booleanを返却する関数の指定子、 またはnil
new-list - リスト
itemと同じものが、listの既存の要素にあるかどうかをテストします。 もしitemが既存の要素に存在しないときは、 adjoin
は、cons
によってlistに追加したあと、 その結果を返却します。 存在するときは、何も加えないまま元のlistを返却します。
test, test-notとkeyは、listの要素とitemが 同じかどうかをどのように決めるかに影響します。 詳しい説明は17.2.1. 2つの引数のテストをご確認ください。
setq slist '()) => NIL
(adjoin 'a slist) => (A)
(=> NIL
slist setq slist (adjoin '(test-item 1) slist)) => ((TEST-ITEM 1))
(adjoin '(test-item 1) slist) => ((TEST-ITEM 1) (TEST-ITEM 1))
(adjoin '(test-item 1) slist :test 'equal) => ((TEST-ITEM 1))
(adjoin '(new-test-item 1) slist :key #'cadr) => ((TEST-ITEM 1))
(adjoin '(new-test-item 1) slist) => ((NEW-TEST-ITEM 1) (TEST-ITEM 1)) (
なし。
listが通常のリストではないとき、 型type-error
のエラーを通知する準備をしなければなりません。
pushnew
, 3.6. 横断の規則と副作用
:test-not
パラメーターは非推奨です。
adjoin item list :key fn)
(if (member (fn item) list :key fn) list (cons item list)) == (