-1
我想要做的是重複地從列表中取一個元素,如果它符合條件,我會將它追加到一個新列表並保持列表格式。如何執行附加部分? 我得到nth
的元素,我試過push
的幾個變體,但我沒有得到我想要的位置。推送列表
例如我做(setq a 2)
我現在想推4和以後8.如何把元素放在那裏,並保持列表格式?
我想要做的是重複地從列表中取一個元素,如果它符合條件,我會將它追加到一個新列表並保持列表格式。如何執行附加部分? 我得到nth
的元素,我試過push
的幾個變體,但我沒有得到我想要的位置。推送列表
例如我做(setq a 2)
我現在想推4和以後8.如何把元素放在那裏,並保持列表格式?
如果你想推,用01:
(defparameter *a*())
(push 1 *a*)
*a* ==> (1)
(push 2 *a*)
*a* ==> (2 1)
針對您的特殊任務:
(setq *new-list* (remove-if-not #'my-test-p *old-list*))
:
(dolist (x *old-list*)
(when (my-test-p x)
(push x *new-list*)))
(setq *new-list* (nreverse *new-list*))
其實,這可以用一個標準庫函數remove-if-not
完成
或者,如果您願意
(setq *new-list* (remove-if (complement #'my-test-p) *old-list*))
你需要更多的例子來說明你想要做什麼,就前後而言。現在你的問題只是含糊不清。 –