{从函数返回一个字符串} EVAL:变量没有值

时间:2014-07-10 12:01:00

标签: common-lisp

我无法打印return-str的返回值。

; return-str.lisp
(defun ask-for-input(str)
  (princ str)
  (let ((cmd (read-line)))
    cmd))
(defun return-str()
  (let ((data-str (ask-for-input "enter a string")))
    (data-str)))
(princ return-str)

用clisp执行上面的代码,我得到了:

$ clisp return-str.lisp
*** - EVAL: variable RETURN-STR has no value

请帮助我如何从return-str正确返回一个字符串。

谢谢。

1 个答案:

答案 0 :(得分:3)

您的括号在几个地方都不正确。

  • (data-str)应替换为data-str,因为data-str不是函数。
  • (princ return-str)应替换为(princ (return-str)),因为return-str是一个函数。