6
在彼得·塞貝爾的實用的Common Lisp,他給出了這樣的例子:Lisp的DO變量語法推理
(do ((nums nil) (i 1 (1+ i)))
((> i 10) (nreverse nums))
(push i nums))
我可以看到它是如何工作的,使用NUMS內循環,但不能給它一個臺階形。爲什麼你會把NUMS在變量定義,而不是這樣做:
(let (nums) (do ((i 1 (+ i 1)))
((> i 10) (nreverse nums))
(push i nums)))
我敢肯定有一個很好的理由,但我不明白這一點呢。