Chapter 6. 循环 [chap-6]
6.1. LOOP 机制 [sec_6-1]
原文见:https://clisp.sourceforge.io/impnotes/loop.html
6.1.2. 结束时的循环变量
这个标准中已经明确指出循环的变量会一直存在于 FINALLY
分句, 但是没有指出这些变量会有什么值. 所以依赖于这些变量的代码, 比如说,
(loop for x on y finally (return x))
固然不可移植于多个 Common Lisp 实现, 应该避免.
6.1.3. 向后兼容
[CLtL2] 和 [ANSI CL standard] 之间, 在 LOOP
的语法上有一些靠近, 比如说, 以下结构在以前是合法的但是在以后是不合法的:
(loop initially for i from 1 to 5 do (print i) finally return i)
当 CUSTOM:*LOOP-ANSI*
是NIL
, 这样的结构是一直被 CLISP 所接受的但是在宏展开时会引出一个警告. 当 CUSTOM:*LOOP-ANSI*
不是 NIL
, 会发出一个 ERROR
.
6.2. Miscellaneous
原文见:https://clisp.sourceforge.io/impnotes/iter-misc.html