gpt4 book ai didi

list - 每次递增都会创建一个子列表的 Lisp 程序

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

我目前正在开发一个程序,该程序通过列表递增并在每次递增时在列表中创建一个子列表。例如,如果我有一个

列表
(1 2 3 4 5 6)

.然后我想通过它递增并创建

(1 (2 (3 (4 (5 (6))))))

.到目前为止,我有:

(defun INCREMENT (L) (unless (endp L) (cons (list (first L)) (INC (rest L)))))

但是这一切都会返回

((1) (2) (3) (4))

我知道它只是增加了使用列表的次数以及遍历列表的元素,但我仍在学习 Lisp 的语法。有人可以帮我解决这个问题吗?

最佳答案

这是一个可能的解决方案,诀窍是使用 list before 调用递归。另请注意,我们必须处理基本情况:当列表为空且只剩下一个元素时:

(defun INCREMENT (L)
(cond ((endp L) '())
((endp (rest L)) (list (first L)))
(t (cons (first L)
(list (INCREMENT (rest L)))))))

关于list - 每次递增都会创建一个子列表的 Lisp 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52486118/

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