List 向列表中的参数添加额外的括号

List 向列表中的参数添加额外的括号,list,lisp,List,Lisp,嗨,伙计们,我正在尝试连接一个列表,并返回带有额外括号的第一个值,例如,当我调用函数(括号头(abc))=>((a)bc)。 我这样做是为了在使用'('(a)b c)调用函数时给出结果。这是我的代码: (defun bracket-head (list) (append (first list) (rest list)) 首先,()是括号,而不是括号 接下来,“附加括号”表示将对象包装在列表中: [5]> (list 1) (1) [6]> (list *) ((1)) [

嗨,伙计们,我正在尝试连接一个列表,并返回带有额外括号的第一个值,例如,当我调用函数
(括号头(abc))=>((a)bc)。
我这样做是为了在使用
'('(a)b c)
调用函数时给出结果。这是我的代码:

(defun bracket-head (list)
    (append (first list) (rest list))
首先,
()
是括号,而不是括号

接下来,“附加括号”表示将对象包装在列表中:

[5]> (list 1)
(1)
[6]> (list *)
((1))
[7]> (list *)
(((1)))
[8]> (list *)
((((1))))
[9]> (list *)
(((((1)))))
因此,您需要做的是

[13]> (defparameter list (list 1 2 3))
LIST
[14]> (setf (first list) (list (first list)))
(1)
[15]> list
((1) 2 3)
或者,如果您不想就地修改列表:

[17]> (defparameter list (list 1 2 3))
LIST
[18]> (cons (list (first list)) (rest list))
((1) 2 3)
[19]> list
(1 2 3)