如何使用循环遍历Common Lisp中的序列?

mal*_*per 7 lisp common-lisp

以前我一直在使用"作为循环特征的元素"来迭代未知类型的序列.我刚刚发现Common Lisp的每个实现都没有提供"作为元素",并且我想知道是否有任何干净的方法来使用循环迭代序列.我能够提供的最佳解决方案是将序列强制转换为列表,然后对其进行迭代.

Rai*_*wig 10

不,LOOP不直接提供这样的功能.如果您的LOOP实现是可扩展的(标准也没有说明),您可能能够实现这样的功能.

LOOP有条款迭代列表 - for item in list和一个迭代向量的子句for e across vector- 注意字符串也是向量,一维数组.但不是两者在一起.

否则使用MAPMAP-INTO迭代序列.

ITERATE宏提供这样的功能:for i in-sequence seq.