我在CLISP中定义了一个简单的功能函数:
(defun power(B E)
(if (= E 1)
B
(* B ( power (B (- E 1))))))
但是当我尝试这样调用函数时:
(power 2 6)
我收到以下错误:
*** - EVAL:未定义的函数B
我在Ideone.com上尝试了以下代码:
(defun power(B E)
(if (= E 1)
B
(* B ( power (B (- E 1))))))
(setq base (read))
(setq exponent (read))
(print (power(base exponent)))
以STDIN为
2
6
然后,STDERR再次抛出此错误:
*** - EVAL:未定义的函数BASE
为什么参数 B或BASE不被视为变量而是函数? 数值是自我评估所以为什么这段代码不起作用?
答案 0 :(得分:1)
(defun power (B E)
(if (= E 1)
B
(* B (power B (- E 1)))))
...你不能像使用其他编程语言一样在Lisp中添加“冗余”括号。