Je deviens fou avec un petit problème ici, Je continue à obtenir une erreur et je ne peux pas sembler comprendre pourquoi, le code est censé changer la plage d'une liste, si nous lui donnons une liste des valeurs (1 2 3 4)
et nous voulons changer la gamme de 11 à quatorze ans le résultat serait (11 12 13 14)
le problème est que la dernière fonction appelée scale-list
redonnera une erreur en disant:une question sur le lisp commun
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
quelqu'un a une idée pourquoi? J'utilise Aquamacs comme un éditeur merci à l'avance
;;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)
Qu'est-ce que votre _editor_ a à faire avec la question? – Svante
peut-être qu'il pensait que l'éditeur est un lisp! –
aucun homme ... mais puisque je ne sais pas vraiment ... Je pensais que peut-être l'éditeur prend en charge un mode nativement ... de toute façon je viens de m'impliquer dans le lisp commun pour aider un ami dans sa tâche et je ne me sens pas comme Je dois tout savoir sur la langue depuis le jour 0 ... alors c'est facile – rabidmachine9