я определяю простую функцию для власти в 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 или основание не рассматривается в качестве переменной, но в функцию? Числовые значения самооценки так почему этот код не работает?
Как вы пишете вызов функции? скобка arg0 arg1 ... argn закрывающая скобка. Правильно? Теперь что такое '(B (- E 1))'? Похоже на вызов функции. Только то, что говорит Лисп. Но B - переменная, а не функция. Так жалуется Лисп. Справедливо. –
У меня вопрос о вашем вопросе, потому что в коде отсутствует правильный отступ. В принципе, у него нет никакого отступа. Измените свой вопрос и правильно отформатируйте код. –
'(базовый экспонент)', который также является вызовом функции. не будет работать. –