gpt4 book ai didi

lisp - 如何在普通 lisp 中从一个奇数对和偶数对的单个列表创建列表列表

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

我是 Lisp 编程的新手,正在尝试从 lisp 中的一个列表创建子列表,其中一对奇数和偶数来自列表。例如:我有一个 list

ListA ("a" "b" "c" "d" "e" "f" "g" "h") 

现在我想转换成下面的列表:

enter code here
ListB ( ("a" "b") ("c" "d") ("e" "f") ("g" "h") )

所以总是会生成值为((first second)(third fourth)(fifth sixth).........)的子列表

我尝试了多种方法,例如首先取出奇数项和偶数项并使用函数 (list (oddlist evenlist)) 但在上面的 ListB 中没有超过预期值。有人可以在这方面帮助我吗.非常感谢您的帮助。

最佳答案

这对于 loop 实际上非常很短:

(loop for (x y) on '(a b c d e f) by #'cddr
collect (list x y))
;=> ((A B) (C D) (E F))

如果你有奇数个元素,这确实会在最后一对中给你一个 NIL,但你没有提到在这种情况下应该发生什么:

(loop for (x y) on '(a b c d e f g ) by #'cddr
collect (list x y))
;=> ((A B) (C D) (E F) (G NIL))

关于lisp - 如何在普通 lisp 中从一个奇数对和偶数对的单个列表创建列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314957/

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