我在lisp中编写符号区分时遇到了一些问题。 我正在尝试编写sqrt(x)的派生词,但是当我在代码中使用这个变量时,它会告诉我x未定义。
;----------------------------------------
; deriv sqrt
;----------------------------------------
(defun derivsqrt (expr var)
(smult (smult (sdiv 1 2)
(sqrt (second expr))) ; This line gives me error
(deriv (second expr) var)))
我称这个函数为:
((eq'坊(first expr))
(derivsqrt expr var))
我正在测试它:(衍生'(sqrt(* 3 x))'x)
有人可以帮忙吗?
答案 0 :(得分:2)
(second expr)
是列表(* 3 x)
,它不是数字,但函数sqrt
需要一个数字作为其参数。既然你说你想要进行符号区分,你可能应该返回一个带有符号sqrt
的列表,而不是调用该函数。