所以我有这个简单的表达式来评估和列出二次方程的两个根:
(defun QUADRATIC (A B C) (list (/ (+ (- B) (sqrt(- (* B B) - (* 4 A C)))) (* 2 A)) (/ (- (- B) (sqrt(- (* B B) - (* 4 A C)))) (* 2 A))))
但是当我在CLISP中使用任意三个数字来评估参数时,请说
(quadratic 2 2 2)
我收到以下错误:(quadratic 2 2 2) is not a number
我确信有一个简单的解决办法,但我无法解决这个问题!
答案 0 :(得分:1)
您的定义中存在语法错误(并使用编辑器正确格式化代码帮助查找此类错误)。
正确的定义是:
(defun quadratic (A B C)
(list (/ (+ (- B) (sqrt(- (* B B) (* 4 A C))))
(* 2 A))
(/ (- (- B) (sqrt(- (* B B) (* 4 A C))))
(* 2 A))))
虽然-
来电中有额外的sqrt
:(sqrt(- (* B B) - (* 4 A C)))) (* 2 A))
(第二个-
)。
特定错误消息的原因是-
未在函数位置使用的是引用当前表单的特殊变量(请参阅specification)。