我试图在lisp中构建一个Taylor系列,如下图所示。
1 + x^1/1! + x^2/2! + x^3/3!.....etc
功能和阶乘功能已经实施,以便在泰勒功能中使用它们。
目前我编写了以下初始代码来解决这个问题。
(defun taylor(x n)
(if (= n 0) 1
(+ (/ (power x n) (factorial n)) (taylor(x (- n 1))))))
使用此代码将导致以下错误
错误:未绑定的功能 - X
我是lisp中的新手,所以任何帮助都将受到赞赏:D
答案 0 :(得分:3)
taylor
前面有一个额外的括号;即你需要将其称为(taylor x n)
而不是(taylor (x n))
。
一般来说,如果你适当地缩进代码,这样的错误会更容易被发现,例如:以下
(defun factorial (n)
(if (= n 1)
1
(* n (factorial (1- n)))))
(defun power (x n)
(if (= n 1)
x
(* x (power x (1- n)))))
(defun taylor (x n)
(if (= n 0)
1
(+ (/ (power x n)
(factorial n))
(taylor x (- n 1)))))