0

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。ここで何が起こっているのですか?

より正確には、[Compile/Load file] をクリックし、[Eval And Pretty-Print] をクリックしました。

4

1 に答える 1