Common Lisp中如何转义双引号?

12

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

(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...\""
1个回答

17
返回值以可读的方式打印,即使用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...\""

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接