EVAL:公共LISP中未定义的函数

EVAL:公共LISP中未定义的函数,lisp,common-lisp,eval,read-eval-print-loop,Lisp,Common Lisp,Eval,Read Eval Print Loop,我在CLISP中为power定义了一个简单的函数: (defun power(B E) (if (= E 1) B (* B ( power (B (- E 1)))))) 但是,当我尝试像这样调用函数时: (power 2 6) 我得到以下错误: ***-EVAL:未定义的函数B 我在as上尝试了以下代码: 以STDIN为例 2 6 然后,STDERR再次抛出以下错误: ***-EVAL:未定义的函数基 为什么参数B或BASE不是变量而是函数? 数值是自评估的

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

(defun power(B E)
  (if (= E 1)
      B
      (* B ( power (B (- E 1))))))
但是,当我尝试像这样调用函数时:

(power 2 6)
我得到以下错误:

***-EVAL:未定义的函数B

我在as上尝试了以下代码:

以STDIN为例

2
6
然后,STDERR再次抛出以下错误:

***-EVAL:未定义的函数基

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

(defun power (B E)
  (if (= E 1)
    B
    (* B (power B (- E 1)))))
…不能像使用其他编程语言那样在Lisp中添加“冗余”括号


…您不能像其他编程语言那样在Lisp中添加“冗余”括号。

如何编写函数调用?括号函数arg0 arg1。。。argn右括号。对吗?现在什么是
(B(-e1))
?在我看来,这就像一个函数调用。正如Lisp所说。但是B是一个变量,而不是一个函数。所以Lisp抱怨道。没错。我不赞成你的问题,因为代码缺乏适当的缩进。基本上它根本没有压痕。请编辑您的问题并正确设置代码格式。
(基本指数)
这也是一个函数调用。不起作用。如何调用具有两个参数的函数?就像在
(+ab)
(+ab))
中一样。你觉得怎么样?@RainerJoswig:作为一个LISP新手,我已经在期待否决票了:)尽管我犯了一个愚蠢的错误,把函数调用为f(x)而不是fx。你如何编写函数调用?括号函数arg0 arg1。。。argn右括号。对吗?现在什么是
(B(-e1))
?在我看来,这就像一个函数调用。正如Lisp所说。但是B是一个变量,而不是一个函数。所以Lisp抱怨道。没错。我不赞成你的问题,因为代码缺乏适当的缩进。基本上它根本没有压痕。请编辑您的问题并正确设置代码格式。
(基本指数)
这也是一个函数调用。不起作用。如何调用具有两个参数的函数?就像在
(+ab)
(+ab))
中一样。你觉得怎么样?@RainerJoswig:作为一个口齿不清的新手,我已经在期待落选了:)尽管我犯了一个愚蠢的错误,把这个函数称为f(x)而不是f x。这是一个非常愚蠢的错误。@RishbhSharma它与双名称空间一起是最常见的初学者绊倒。这是一个非常愚蠢的错误。@RishbhSharma它与双名称空间一起是最常见的初学者绊倒。
(defun power (B E)
  (if (= E 1)
    B
    (* B (power B (- E 1)))))