大家好我正在尝试连接列表并返回带有额外括号的第一个值,例如当我调用函数(bracket-head '(a b c)) => ( (A) B C ).
时
当我使用'('(a) b c)
调用函数时,我已经完成了它的结果。所以这是我的代码:
(defun bracket-head (list)
(append (first list) (rest list))
答案 0 :(得分:2)
首先,()
是括号,而不是括号。
接下来,“额外括号”表示您将对象包装在列表中:
[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)