lisp-do循环
·1min·李岩
lisp中,do循环形象如下:
(do (variable-definition*)
(end-test-form result-form*)
statement*);
其中,(variable-definition*)是一些行日(var init next)的赋值结构。在do开始时,var会被赋值为init。并且在一次循环结束后,var会被赋值为next所表示的内容。
形如:
(do ((n 0 (+ 1 n))
(cur 0 next)
(next 1 (+ cur next)))
((= 10 n) (format t "|end ~d" cur))
(format t "~d|" cur));
输出:
0|1|1|2|3|5|8|13|21|34||end 55
类似于python中的:
cur = 0
next = 1
for i in range(10):
print("%d|" % cur)
cur, next = next, cur + next
print("|end %d" % cur)