EVAL:Common LISP 中的未定义函数

EVAL: undefined function in Common LISP

我在 CLISP 中定义了一个简单的幂函数:

(defun power(B E)
  (if (= E 1)
      B
      (* B ( power (B (- E 1))))))

但是当我尝试这样调用函数时:

(power 2 6)

我收到以下错误:

*** - EVAL: undefined function 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)))

标准输入为

2
6

然后,STDERR 再次抛出此错误:

*** - EVAL: undefined function BASE

为什么 参数 B 或 BASE 不被视为变量而是 函数? 数值是自我评估 那么为什么这段代码不起作用?

(defun power (B E)
  (if (= E 1)
    B
    (* B (power B (- E 1)))))

...您不能像使用其他一些编程语言那样在 Lisp 中添加 "redundant" 括号。