在打印语句Lisp中返回变量
快速提问 我试图向我的函数中添加一些东西,它将我作为字符串的一部分提供给控制台的任何参数打印回来在打印语句Lisp中返回变量,lisp,Lisp,快速提问 我试图向我的函数中添加一些东西,它将我作为字符串的一部分提供给控制台的任何参数打印回来 (defun test (testvar) (format Your number is *testvar*)) 环顾四周后,我认为我应该使用格式,但这是我所能找到的。您可以通过REPL循环(READ-EVAL-PRINT循环)中的控制台在Common Lisp中进行交互。因此,每个表达式都被读取、求值,并打印求值结果 CL-USER> (defun test (testvar)
(defun test (testvar)
(format Your number is *testvar*))
环顾四周后,我认为我应该使用格式,但这是我所能找到的。您可以通过REPL循环(READ-EVAL-PRINT循环)中的控制台在Common Lisp中进行交互。因此,每个表达式都被读取、求值,并打印求值结果
CL-USER> (defun test (testvar)
(format nil "Your input is ~A" testvar))
TEST
CL-USER> (test 3)
"Your input is 3"
CL-USER> (test 'symbol)
"Your input is SYMBOL"
CL-USER> (test "string")
"Your input is string"
CL-USER>
format
函数()在其第二个参数为nil时,将第二个参数(格式字符串)中的特殊标记(如“~a”“~s”)替换为剩余参数的结果作为字符串返回
如果format
的第二个参数改为t
或流,则格式化字符串输出到指定的流(或者,在t
的情况下,输出到特殊的*标准输出*流,最初与控制台相同),并返回格式化结果(然后由REPL打印)。例如:
CL-USER> (defun test (testvar)
(format t "Your input is ~A" testvar))
TEST
CL-USER> (test 3)
Your input is 3
NIL
CL-USER>
在这种情况下,
NIL
是格式化函数的结果。还请注意,与第一种情况不同,在第一种情况下,您的输入是3
被双引号括起来打印(因为(format nil…
的结果是一个字符串,并且由REPL打印),打印操作后输出保持不变。您是否阅读了格式文档?