ivan_s2018 Asked:2021-12-18 03:34:09 +0000 UTC2021-12-18 03:34:09 +0000 UTC 2021-12-18 03:34:09 +0000 UTC 描述一个函数,它从源列表生成一个仅包含字符原子的列表,给定子列表/普通 lisp 的元素 [关闭] 772 给定子列表的元素,描述一个从初始列表形成仅包含字符原子的列表的函数。例如,将函数应用于参数 '(a 3 (4 b 7 c (4 d)) e) 的结果应该是 '(a (bc (d)) e)。 帮我解决common lisp这个问题 lisp 1 个回答 Voted Best Answer Frog 2021-12-18T05:53:19Z2021-12-18T05:53:19Z 好吧,会有这样的事情。 (defun func (lst) (if (atom lst) (if (symbolp lst) lst nil ) (if (null (func (car lst))) (func (cdr lst)) (cons (func (car lst)) (func (cdr lst)) )))) (print (func '(1 2 a b 2 ( c ( d 15))))) ;(A B (C (D))) 也许,以某种方式减少该功能是可能的。 它的本质是这样的: 如果我们有一个原子元素(符号,数字),那么我们用 symbolp 函数检查它是否是一个符号,如果它是一个符号,那么我们返回它,否则为零。 如果我们面前有一个列表,那么我们通过相同的函数递归地运行它的每个元素。此外,从所有不等于 nil 的元素创建一个列表。空列表被折叠。
好吧,会有这样的事情。
也许,以某种方式减少该功能是可能的。
它的本质是这样的:
如果我们有一个原子元素(符号,数字),那么我们用 symbolp 函数检查它是否是一个符号,如果它是一个符号,那么我们返回它,否则为零。
如果我们面前有一个列表,那么我们通过相同的函数递归地运行它的每个元素。此外,从所有不等于 nil 的元素创建一个列表。空列表被折叠。