gpt4 book ai didi

lisp - 取出列表中除最后一次出现的结构之外的所有结构

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:02 25 4
gpt4 key购买 nike

我前几天学习了lisp,我想做的就像下面这样

1`(1 2 3 4 1 5) ==> ( 2 3 4 1 5)

我能做的就是删除所有出现的事件,我不知道如何保留最后一个符号。

这是我的代码

(defun test (X L)
(cond ((null L) nil)
((equal X (last L)) (test X (butlast L)))
(t (cons (test X (butlast L)) (last L)))))

感谢您阅读我的问题!

最佳答案

如果这不仅仅是递归练习或家庭作业:

(defun remove-all-but-last (element list)
(remove element list :count (1- (count element list))))

或者:

(defun remove-all-but-last (element list)
(remove element list :end (position element list :from-end t)))

关于lisp - 取出列表中除最后一次出现的结构之外的所有结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com