Function ADJOIN

UP


Function ADJOIN

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-notkeyは、listの要素とitemが 同じかどうかをどのように決めるかに影響します。 詳しい説明は17.2.1. 2つの引数のテストをご確認ください。

例文

(setq slist '()) =>  NIL 
(adjoin 'a slist) =>  (A) 
slist =>  NIL 
(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))

TOP, Github