我想在Common Lisp函数中使用一个变量作为计数器,从所需的数字开始,并在循环中使用。
setq
说明incf
和$('.dynfield').each(function() {
var value = $(this).val(); //append them to var boxc or do the processing you want
});
不适用于此。在clisp中管理计数器变量的标准方法是什么?
答案 0 :(得分:8)
LOOP
中详细解释了
(defun x (c)
(loop
for i from 4
while <condition>
do <something>))
答案 1 :(得分:7)
在Common Lisp中,您需要定义变量。您的变量i
未定义。这是一个错误。
(defun x (c)
(setq i 4) ; undefined variable i
(loop while condition do
;do something
(incf i))) ; undefined variable i
定义你的变量:
CL-USER 9 > (defun x (c)
(let ((i 4)) ; defining/binding local variable i
(loop while (< i 10) do
(print i)
(incf i))))
X
CL-USER 10 > (x :foobar)
4
5
6
7
8
9
NIL
但是,正如 coredump 的另一个答案所示,loop
提供了自己定义变量并迭代它的方法。