gpt4 book ai didi

recursion - Scheme尾递归函数的语法错误

转载 作者:行者123 更新时间:2023-12-03 08:27:22 42 4
gpt4 key购买 nike

我正在创建一个尾递归函数,该函数通过传递系数列表和x值来评估多项式。

示例:计算x ^ 3 + 2x ^ 2 + 5,因此用户将在函数调用(多边形'(5 0 2 1)1)中传递列表'(5 0 2 1)和x像1。

我不知道为什么会出现以下错误:

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))))

最佳答案

在最后一行的poly-assistant之前,您需要左括号。

在Scheme中,功能应用程序从左括号开始。 if需要2或3个操作数。

使用能够匹配括号的更好的编辑器(例如emacs)。
cdr前面的两个左括号看起来可疑。您可能只需要一个。

学习使用您的Scheme调试器,或至少添加调试打印。

关于recursion - Scheme尾递归函数的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46675685/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com