下面的代码会引发:SYSTEM ::%EXPAND-FORM:(SETQ NUM(SUBSTRING LINE 6))应该是一个lambda表达式。如何在这种情况下使用“循环”?
(defun good-red()
(let ((tab (make-hash-table)))
(dotimes (i 50) (setf (gethash (+ i 1) tab) 0))
(with-open-file (stream "ssqHitNum.txt")
(loop for line = (read-line stream nil)
until (null line)
do (
(setq num (substring line 6))
(print line)
)))))
如果我改变“do”如下,它的工作原理。不过,我需要在这里做很多事情。
...
do (print line)
...
此致!
你实际上并不需要'progn',你只需要移除最外面的一组parens。 '(循环...做...)'做了一个隐含的预后。 – asm