我目前正在尝试在GNU Common lisp 2.49中获得… \ hline的输出,但我无法使格式工作。这是我到目前为止尝试获得一个反斜杠:
(格式为“\”)=> “”(…
参见例如:
CL-USER> (write "\\" :escape nil) \ "\\"
在上面,第一个反斜杠是你的字符串,打印时没有转义反斜杠。返回的值是由REPL使用标准io语法打印的字符串( http://clhs.lisp.se/Body/m_w_std_.htm ),逃脱字符串。
因此,您的字符串包含一个反斜杠,但是以可以回读的方式打印,因此需要转义输出字符串中的反斜杠。
还要注意调用 format 使用NIL和单个字符串返回相同的字符串。
format
您可以检查字符串,例如通过将每个字符映射到其名称:
(loop for input in '("\ " "\\ " "\\\ ") collect (list :input input :characters (map 'list #'char-name input)))
这给出了:
((:INPUT " " :CHARACTERS ("Space")) (:INPUT "\\ " :CHARACTERS ("REVERSE_SOLIDUS" "Space")) (:INPUT "\\ " :CHARACTERS ("REVERSE_SOLIDUS" "Space")))
或者,只需使用 inspect :
inspect
CL-USER> (inspect "\\hline") The object is a VECTOR of length 6. 0. #\\ 1. #\h 2. #\l 3. #\i 4. #\n 5. #\e