這是我在普通lisp中的第一個作業的一部分。Lisp:生成一個10個隨機整數的列表
我們必須定義一個變量來表示0到100之間的任意10個隨機整數: 我不確定這裏提出的是什麼。 我應該寫:(setf var1 '())
然後,我們必須定義一個函數,它可以生成10個隨機整數的列表並返回一個包含這些數字的列表。
這是我寫的,但我一直得到NIL作爲我的輸出。你知道什麼是錯的代碼:
(setf *random-state* (make-random-state t))
(setf var1 '())
(defun randlist (var1)
(dotimes (i 10)
(setf temp (random 101))
(cons 'temp var1 )))
您正在使用名爲'var1'的函數參數隱藏全局變量'var1'。另外,不需要使用全局變量,只需使函數返回一個新列表並將結果賦給變量。全局變量是邪惡的。 –