《通链参考手册》


Function ADJOIN

●语法设定:

adjoin item list &key key test test-not => new-list

●参数和值:

item---an object.

list---a proper list.

test---a designator for a function of two arguments that returns a generalized boolean.

test-not---a designator for a function of two arguments that returns a generalized boolean.

key---a designator for a function of one argument, or nil.

new-list---a list.

●详情:

Tests whether item is the same as an existing element of list. If the item is not an existing element, adjoin adds it to list (as if by cons) and returns the resulting list; otherwise, nothing is added and the original list is returned.

The test, test-not, and key affect how it is determined whether item is the same as an element of list. For details, see Section 17.2.1 (Satisfying a Two-Argument Test).

●例子:

 (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)) 

●受制于: 无。

●例外情况:

Should be prepared to signal an error of type type-error if list is not a proper list.

●更多信息:

pushnew, Section 3.6 (Traversal Rules and Side Effects)

●说明:

The :test-not parameter is deprecated.

 (adjoin item list :key fn)
   ==  (if (member (fn item) list :key fn) list (cons item list))


X3J13设计清单非标准部分,可查下面章节:


◇首页 § ◎章节目录 § □内容索引 § ○符号索引 § △术语表 § ※设计草案