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

Common lisp {从函数返回字符串}EVAL:变量没有值,common-lisp,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执行上述代码,我得到: $ clis

我无法打印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返回字符串

; 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)

谢谢。

你的括号有几处不正确

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

您的括号有几处不正确

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

您的括号有几处不正确

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

您的括号有几处不正确

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

这很快就解决了我的问题!谢谢。这很快就解决了我的问题!谢谢。这很快就解决了我的问题!谢谢。这很快就解决了我的问题!非常感谢。