我想分割一個序列使用LOOP
。 我認爲最簡單的方法是收集所有元素的循環,但這似乎不可能與循環。 它看起來是這樣的:Common Lisp循環宏也收集其餘
(loop for i in '(1 2 3 4 5) with-rest rest
if (not (= i 3))
collect i
else
return (values i rest))
它應該返回的值(1 2)
和(3 4 5)
(或者(4 5)
作爲第二個值)。 循環中是否有一個關鍵字可以執行此操作(或在迭代系統中),還是隻有通過編寫新的宏(或使用tagbody)纔有可能?
沒有,'return'作品,它也出現在環 - 在「Lisp Land」中的表格,但是「on」在那裏被描述爲與' – 2015-04-05 18:02:08
@ cl-porky11'中的'相同,'RETURN'適用於這種情況。我正在考慮'FINALLY'形式...... – 2015-04-05 20:50:15