|
|
1
13
首先要注意的是
不是用
就我个人而言,我更喜欢 iterate
甚至:
编辑:其他注释:名称
|
|
|
2
8
功能
(defun unzip (list)
(loop for (x y) on list by #'cddr
collect x into a
collect y into b
finally (return (list a b))))
|
|
|
3
3
以下是列表的版本:
示例(请注意,CL中的索引是基于零的,我更改了示例以减少混淆):
以下是一个期望长度为偶数的列表并使用循环的版本:
|
|
|
4
2
我能看到的唯一不好的事情是
不幸的是,我不知道如何在Lisp中做到这一点,但在Scheme中,您只需要使用一个命名的
|
|
|
5
1
我会用循环或递归函数来解决这个问题。 对于一个基于循环的解决方案,@Ramarren已经基本解决了这个问题。 如果知道什么来自偶数索引和什么来自奇数索引并不重要,我会使用以下方法:
|
|
6
1
方案版本,仅用于目标实践。:-)(需要SRFI 1
|
|
|
7
1
编辑:更具体地说,我希望
|
|
|
8
1
下面是另一种可能的解决方案,使用递归:
缺点:由于递归,它可能会为大型列表堆栈溢出。如果它必须处理大型列表,请参阅@Vatine以获得尾部递归解决方案。 |
|
|
9
1
这是一个对奇数长度输入不敏感的循环版本,它只是@huaiyuan答案的一个小变化,添加了一个when子句:
|
|
|
10
0
递归解决方案:
|
|
|
kflak · 如何在公共lisp中将函数传递给宏 1 年前 |
|
|
Denes Cselovszki · 在宏定义中使用读取器宏字符 2 年前 |
|
|
7stud · 为什么是传单和封页? 2 年前 |
|
|
Vinn · DB中的HTML未注入hunchentoot路由 2 年前 |
|
|
ptb · Slime\Emacs comint在启动mpi进程时挂起 8 年前 |
|
|
Alexandru Popa · SBCL中奇怪的宏扩展错误 8 年前 |
|
|
MadPhysicist · 公共Lisp未定义分派字符 8 年前 |