Ich muss ein einfaches Programm in Lisp schreiben, das ein Polynom um einen Faktor multipliziert. In diesem Beispiel möchte ich (x + 5) * 5x multiplizieren. Die Antwort sollte 5x^2 + 25x sein.Erhalte einen "schlechten Bindungsform" -Fehler in LISP
Wenn ich ((1 1) (5 0)) (5 1))
einstelle, sollte ich (5 2) (25 1)
bekommen. Jedoch bekomme ich verschiedene Fehler im Bereich von undefined operator TERM in (TERM)
und bad binding form.
Ich bin ein Neuling bei Lisp und versuche, eine Liste wie oben gezeigt zurückzugeben. Unten ist mein kurzer Block des Codes:
(defun get-coef (term)
(car term))
(defun get-power (term)
(cadr term))
(defun make-term (coef power)
(cons coef power))
(defun poly-eval (poly factor)
(if (null poly) 0
(let ((term (car poly))
(let (coef ((* (get-coef(term)) (get-coef(factor)))))
(power ((+ (cadr(term)) (cadr(factor)))))
(make-term (coef power))
(poly-eval (cdr poly) factor))))))
Jede mögliche Hilfe wird geschätzt !!