Мне нужно написать простую программу в Lisp, которая умножает многочлен на некоторый коэффициент. В этом примере я хочу умножить (x + 5) * 5x. Ответ должен быть 5x^2 + 25x.Получение ошибки «плохой привязки» в LISP
Когда я положил ((1 1) (5 0)) (5 1))
, я должен был получить (5 2) (25 1)
. Тем не менее, я получаю различные ошибки от undefined operator TERM in (TERM)
и bad binding form.
Я новичок в Lisp и пытаюсь вернуть список, как показано выше. Ниже мой короткий блок кода:
(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))))))
Любая помощь приветствуется!