在Common Lisp中逃避双引号

oak*_*ld1 8 string escaping common-lisp string-concatenation

如何在连接字符串时转义双引号?比如我希望

(concatenate 'string "Mama said: " "\"Son, your life is an open book...\"")
Run Code Online (Sandbox Code Playgroud)

给:

"Mama said: "Son, your life is an open book...""
Run Code Online (Sandbox Code Playgroud)

而是用反斜杠返回它:

"Mama said: \"Son, your life is an open book...\""
Run Code Online (Sandbox Code Playgroud)

Ram*_*ren 14

返回值可读取,即使用可以使用READ解析为CL对象的表示形式.如果您使用像PRINC这样的函数按字母方式打印字符串,您会看到引号符合您的要求(外部引号不是字符串的一部分):

CL-USER> (princ (concatenate 'string "Mama said: " "\"Son, your life is an open book...\""))
Mama said: "Son, your life is an open book..."
"Mama said: \"Son, your life is an open book...\""
Run Code Online (Sandbox Code Playgroud)

第一行是PRINC的结果,PRINC是READ-EVAL-PRINT-LOOP的PRINT部分的第二行.