Input 如何在LispWorks中正确询问用户的输入?
我有以下代码:Input 如何在LispWorks中正确询问用户的输入?,input,lisp,common-lisp,lispworks,Input,Lisp,Common Lisp,Lispworks,我有以下代码: (defvar x) (setq x (read)) (format t "this is your input: ~a" x) 它在Common Lisp中可以正常工作,但LispWorks显示了以下错误: End of file while reading stream #<Synonym stream to *BACKGROUND-INPUT*>. 读取流时文件结束#。 我的意思是我试过这个:做一个函数。但仍然显示相同的错误 我希望任何
(defvar x)
(setq x (read))
(format t "this is your input: ~a" x)
它在Common Lisp中可以正常工作,但LispWorks显示了以下错误:
End of file while reading stream #<Synonym stream to
*BACKGROUND-INPUT*>.
读取流时文件结束#。
我的意思是我试过这个:做一个函数。但仍然显示相同的错误
我希望任何人都能帮助我。您可能将这三行代码写到编辑器中,然后进行编译 因此,您可以将此函数写入编辑器:
(defun get-input ()
(format t "This is your input: ~a" (read)))
编译编辑器并从侦听器(REPL)调用此函数
您还可以像这样使用*查询io*
流:
(format t "This is your input: ~a" (read *query-io*))
如果在Listener中调用这一行,它的行为类似于read
。若你们在编辑器中调用它,它会显示一个小提示“输入某物:”
如您所见,不需要全局变量。如果需要使用该给定值执行某些操作,请使用,这将创建本地绑定:
(defun input-sum ()
(let ((x (read *query-io*))
(y (read *query-io*)))
(format t "This is x: ~a~%" x)
(format t "This is y: ~a~%" y)
(+ x y)))
还可以考虑使用,它接受输入并将其作为字符串返回:
CL-USER 19 > (read-line)
some text
"some text"
NIL
CL-USER 20 > (read-line)
5
"5"
NIL
您可能将这三行代码写入编辑器,然后进行编译 因此,您可以将此函数写入编辑器:
(defun get-input ()
(format t "This is your input: ~a" (read)))
编译编辑器并从侦听器(REPL)调用此函数
您还可以像这样使用*查询io*
流:
(format t "This is your input: ~a" (read *query-io*))
如果在Listener中调用这一行,它的行为类似于read
。若你们在编辑器中调用它,它会显示一个小提示“输入某物:”
如您所见,不需要全局变量。如果需要使用该给定值执行某些操作,请使用,这将创建本地绑定:
(defun input-sum ()
(let ((x (read *query-io*))
(y (read *query-io*)))
(format t "This is x: ~a~%" x)
(format t "This is y: ~a~%" y)
(+ x y)))
还可以考虑使用,它接受输入并将其作为字符串返回:
CL-USER 19 > (read-line)
some text
"some text"
NIL
CL-USER 20 > (read-line)
5
"5"
NIL
CommonLisp是一种语言,而不是一种实现。LispWorks是公共Lisp的一个实现。如果你发布了一个错误,你需要给我们一个可复制的测试用例,以及你如何运行你的代码。LispWorks是公共Lisp的一个实现。如果你发布了一个错误,你需要给我们一个可复制的测试用例,以及你是如何运行代码的。非常感谢。非常感谢。