У меня есть следующий код:Odd (чтение) выпуск в Common Lisp (SBCL)
(defun Areacircle()
(princ "Enter Radius: ")
(defparameter radius (read))
(defparameter area (* 3.1416 radius radius))
(princ "Area: ")
(write area))
(AreaCircle)
Проблема заключается в том, что слизь запускает его без проблем, но когда я скомпилировать его с (при компиляции файла «область .lisp ": output-file" area)) сначала оценивает (прочитанную) часть; он просит передать значение радиусу до печати чего-либо.
Посмотрите в силовой выход. –
Хотя это и не так плохо, необычно использовать 'defparameter' внутри функции, как вы. Кроме того, я бы написал функцию 'circle-area'. Джошуа Тейлор прав насчет принудительного вывода (http://clhs.lisp.se/Body/f_finish.htm) – coredump