这个问题在这里已有答案:
我在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不被视为变量而是函数?数值是自我评估的,为什么这段代码不起作用?
1 回答
...你不能像使用其他编程语言一样在Lisp中添加“冗余”括号 .