【发布时间】:2017-03-31 19:15:48
【问题描述】:
(defun index-iteration (n)
(let ((x 0))
(loop for j from 0 to n while (< x n) do
(setf x (max-index-for-iteration j)))))
我有以下 lisp 代码,在循环结束时我想返回值j。我调查过:
-
collect但这会返回一个包含我想要的值的值列表(最后一个j在末尾) -
finally但没用。 -
return但它提前结束了循环
【问题讨论】:
-
如果
collect最后有你的答案,你不能只返回最后一个值吗? -
finally和return一起使用怎么样?
-
您可以使用第二个
setf来记住j的值。或者你可以用递归函数替换循环。 -
@spiderPig 我已经这样做了,但我想要更简洁的代码。
标签: lisp common-lisp clisp