gpt4 book ai didi

list - 如何在没有 map 的情况下在 Lisp 中创建子列表列表?

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

我正在尝试创建一个函数来创建给定列表中所有子列表的列表。

我的意思是,当我有一个列表时:

(4 (a g b) g (1 2 3) g (4 5 6))

我想要一个列表:

((a g b) (1 2 3) (4 5 6))

我现在得到的:

(defun unterlisten_zurueckgeben (lst)
(let (unterlisten)
(cond ((endp lst) nil)
((listp (first lst))
(or (unterlisten_zurueckgeben (first lst))
(setq unterlisten (cons (first lst) (unterlisten_zurueckgeben (rest lst))))))
(t (unterlisten_zurueckgeben (rest lst))))
unterlisten))

似乎不起作用,我找不到我的错误。

最佳答案

如果是这样你可以写:

(defun unterlisten-zurueckgeben (lst)
(remove-if-not #'listp lst))
; or use #'consp if you don't want empty sublists

请注意,在 Lisp 中,组合标识符的首选方式是使用破折号而不是下划线。

关于list - 如何在没有 map 的情况下在 Lisp 中创建子列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30207552/

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