我正在创建一个尾递归函数,它通过传递一个系数列表和一个x值来计算一个多项式。例如:评估x^3 + 2x^2 + 5,因此用户可以在函数调用(poly'(5 0 2 1)1)中通过列表'(5 0 2 1) )。关于Scheme尾递归函数的语法错误
我想不通,为什么我收到以下错误:
if: bad syntax in: (if (null? (cdr lst)) (+ total (car lst)) eval-poly-tail-helper ((cdr lst) x (+ (* (expt x n) (car lst)) total) (+ 1 n)))
(define (poly lst x)
(poly-assistant lst x 0 0))
(define (poly-assistant lst x total n)
(if (null? (cdr lst))
(+ total (car lst))
poly-assistant((cdr lst) x (+ (* (expt x n) (car lst)) total) (+ 1 n))))
请尽量自己做功课!你的修复我的代码问题是脱离主题。 –