在打印语句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打印),打印操作后输出保持不变。

您是否阅读了格式文档?