首页 文章

EVAL:Common LISP中的未定义函数[重复]

提问于
浏览
0

这个问题在这里已有答案:

我在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 回答

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

    ...你不能像使用其他编程语言一样在Lisp中添加“冗余”括号 .

相关问题