在公共Lisp中初始化计数器变量
我想在公共Lisp函数中使用一个变量作为计数器,从所需的数字开始,在循环中使用在公共Lisp中初始化计数器变量,lisp,common-lisp,Lisp,Common Lisp,我想在公共Lisp函数中使用一个变量作为计数器,从所需的数字开始,在循环中使用 (defun x(c) (setq i 4) (loop while condition do ;do something (incf i))) 说明setq和incf不适用于此。在clisp中管理计数器变量的标准方法是什么?在中详细说明 (defun x(c) (环路 我从4岁开始 虽然 做 在Common Lisp中,您需要定义变量。变量i未定义。那是个错误 (de
(defun x(c)
(setq i 4)
(loop while condition do
;do something
(incf i)))
说明setq
和incf
不适用于此。在clisp中管理计数器变量的标准方法是什么?在中详细说明
(defun x(c)
(环路
我从4岁开始
虽然
做
在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
CL-USER 9>(defun x(c)
(let((i4));定义/绑定局部变量i
(循环时((x:foobar)
4.
5.
6.
7.
8.
9
无
但正如coredump的另一个答案所示,loop
提供了自己的方法来定义变量并对其进行迭代
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