ここで小さな問題に夢中になっています。エラーが発生し続け、理由がわからないようです。コードはリストの範囲を変更することになっているので、値(1 2 3 4)を含むリストを指定して、 11から14の範囲を変更すると(11 12 13 14)
、問題は、最後に呼び出された関数scale-listが次のようなエラーを返すことです。
デバッガーが入力されました--Lispエラー:(間違ったタイプの引数番号またはマーカー-pnil)
誰かがなぜ手がかりを持っていますか?よろしくお願いします。
;;finds minimum in a list
(defun minimum (list)
(car (sort list #'<)))
;;finds maximum in a list
(defun maximum (list)
(car (sort list #'>)))
;;calculates the range of a list
(defun range (list)
(- (maximum list) (minimum list)))
;;scales one value to another range
(defun scale-value (list low high n)
(+ (/ (* (- (nth (- n 1) list)
(minimum list))
(- high low))
(range list))
low))
;;is supposed to scale the whole list to another range
(defun scale-list (list low high n)
(unless (= n 0)
(cons (scale-value list low high n)
(scale-list list low high (- n 1)))))
(scale-list '(1 2 3 4) 21 24 4)