【发布时间】:2014-12-27 10:41:32
【问题描述】:
我有一个列表列表:(setq xs (list (list 1 2 3) (list 4 5 6) (list 7 8 9)))。我想从每个列表中删除第一个元素以获得((2 3) (5 6) (8 9))。非破坏性地做到这一点很容易:(mapcar 'cdr xs)。但我想改变原始列表。我试过了:
(mapcar (lambda (x) (setf x (cdr x))) xs)
(mapcar (lambda (x) (pop x)) xs)
但它不起作用。如何在不创建任何临时列表的情况下尽可能高效地就地更改每个 xs 变量列表?
【问题讨论】:
标签: lisp common-lisp in-place