gpt4 book ai didi

lisp - 删除不需要的变量

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

您好,我正在尝试从列表中删除不需要的变量。这是我的功能:

(defun remove-vars (list)
(loop for x in list do
(print x))))

我想传入这个 (get-vars '(A (NOT B) C))并打印出来

A
B
C

但我正在打印

A
(NOT B)
C
Nil

有没有办法从列表中删除括号和非?如果列表更大且带有 a b c d 我想删除所有 not 和括号的实例,我们将不胜感激。我猜想循环检查“( ) 或 x 中是否存在”然后从列表中删除它们的伪代码是什么

最佳答案

一个简单的解决方案是展平列表并删除 NOT,如下所示:

(defun flatten (var-list)
(cond ((null var-list) nil)
((atom var-list) (list var-list))
(t (mapcan #'flatten var-list))))

(defun get-vars (var-list)
(remove 'NOT (flatten var-list)))

(get-vars '(A (NOT B) C))

希望对你有帮助

关于lisp - 删除不需要的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36052626/

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