gpt4 book ai didi

function - 取消括号?

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

我想使用递归函数编写代码来取消 LIST 中的括号嵌套。

这是一个例子:

(unnest '(1 (2 (3)) (4 5))) ==> (1 2 3 4 5)

最佳答案

(defun unnest (lst)
(cond ((null? lst) '())
((not (list? lst)) (list lst))
(t
(append (unnest (car lst))
(unnest (cdr lst))))))

> (unnest '(1 (2 (3)) (4 5)))
(1 2 3 4 5)

大致思路如下:

  • 如果您有一个空列表,那么您显然不需要取消嵌套;
  • 如果它不是列表,那么它一定是一个原子,因此您返回一个包含该原子的列表;
  • 在最后一个条件中,您有一个列表,所以您基本上说:未嵌套列表的结果是第一个元素的未嵌套版本附加到列表其余部分的未嵌套版本,仅此而已,递归会处理其余部分。

希望对您有所帮助。

关于function - 取消括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415622/

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