do
优质
小牛编辑
138浏览
2023-12-01
do构造还用于使用LISP执行迭代。 它提供了一种结构化的迭代形式。
do语句的语法 -
(do ((variable<sub>1</sub> value<sub>1</sub> updated-value<sub>1</sub>)
(variable<sub>2</sub> value<sub>2</sub> updated-value<sub>2</sub>)
(variable<sub>3</sub> value<sub>3</sub> updated-value<sub>3</sub>)
...)
(test return-value)
(s-expressions)
)
评估每个变量的初始值并将其绑定到相应的变量。 每个子句中的更新值对应于一个可选的更新语句,该语句指定如何在每次迭代时更新变量的值。
在每次迭代之后,将评估测试,如果返回非nil或true,则评估并返回返回值。
最后的s表达式是可选的。 如果存在,则在每次迭代后执行它们,直到测试值返回true。
例子 (Example)
创建一个名为main.lisp的新源代码文件,并在其中键入以下代码 -
(do ((x 0 (+ 2 x))
(y 20 ( - y 2)))
((= x y)(- x y))
(format t "~% x = ~d y = ~d" x y)
)
单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -
x = 0 y = 20
x = 2 y = 18
x = 4 y = 16
x = 6 y = 14
x = 8 y = 12