我在CLISP定義對權力的簡單功能:EVAL:Common Lisp中未定義功能
(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)))
與STDIN作爲
2
6
再說,STDERR引發此錯誤:
*** - EVAL: undefined function BASE
爲什麼參數 B或BASE不被看作一個可變的,但是一個功能? 數值爲自我評價爲什麼這段代碼不起作用?
如何編寫函數調用?括號函數arg0 arg1 ... argn右括號。對?現在是什麼?(B( - E 1))??看起來像一個函數調用。 Lisp說的是什麼。但是B是一個變量而不是函數。所以Lisp抱怨。正確如此。 –
我低調你的問題,因爲代碼缺乏適當的縮進。基本上它根本沒有縮進。請編輯您的問題並正確設置代碼格式。 –
'(基指數)'也是一個函數調用。將無法工作。 –