Lisp 中出现的随机错误

问题描述

我正在 Portacle 中使用 SLIME 学习 Common Lisp。我的问题是当我评估相同的代码时会出现不同的错误。这段代码试图找出 2000000 以下的所有质数之和。

(defparameter *n* 2000000)

(let ((sum 0) (primes (loop for i from 0 to (1- *n*) collecting t)))
  (do ((i 2 (1+ i)))
      ((>= i *n*))
    (if (elt primes i)
        (progn
          (setf sum (+ sum i))
          (do ((mul (+ i i) (+ mul i)))
              ((>= mul *n*))
            (setf (elt primes mul) nil)))))
  (format t "Sum:~d" sum))

就在之前,它说变量 I 未绑定,然后它说变量 MUL 是,现在它告诉我 PRIMES 是。这里发生了什么?

更准确地说,我所做的是单击编译/加载文件 > 单击 Eval 和 Pretty-Print。

解决方法

将光标放在代码之外,然后单击 Eval 和 Pretty-Print。这将评估整个代码。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...