Common lisp 什么';s";||&引用;代表
以下代码片段中的Common lisp 什么';s";||&引用;代表,common-lisp,Common Lisp,以下代码片段中的:| temp files |是什么意思 (defmethod acceptor-remove-session ((acceptor my-site-acceptor) (session t)) (declare (ignore acceptor)) (loop for path in (session-value :|temp files|) do (ignore-errors (delete-file path)))) 在Comm
:| temp files |
是什么意思
(defmethod acceptor-remove-session ((acceptor my-site-acceptor) (session t))
(declare (ignore acceptor))
(loop for path in (session-value :|temp files|)
do
(ignore-errors (delete-file path))))
在Common Lisp中,
|…|
可用于引用符号名称中的字符;它可以转义通常不允许的字符,例如空格,并且还禁用大小写转换
或foo
具有:foo
符号名
“foo”
或|临时文件|
具有:|临时文件|
“临时文件”符号名
被命名为|
”,是一个空字符串,否则无法生成该字符串“
|…|
在任务适合使用符号,但不适合使用根据常见Lisp约定命名的符号时非常有用。我可以想象,在这种情况下,文本“temp files”出现在程序的输出中的某个地方,或者用作文件名,或者在某些其他情况下,看到temp-files
会很烦人。公共Lisp允许符号名包含范围广泛的字符,例如?
和%
,这是大多数语言在标识符中不允许的。即使如此,有时程序员希望符号名包含超出正常允许范围的内容,例如OP示例中的|temp files
中的单个空格。需要两个管道(|
)字符来分隔此类符号的名称。此外,与不受限制的符号名称不同,此类管道分隔符号名称区分大小写。|
是常见Lisp符号中的多转义字符:
? 'aaBBcc|DDeeFFgg|hhII|jjKK|LL
-> |AABBCCDDeeFFggHHIIjjKKLL|
竖条不需要环绕整个符号名称。它还可以转义符号的某些部分