比较流

Leo*_*Leo 0 lisp common-lisp stream

我需要检查给定的流是否是终端流。例如,使用*standard-output*I do (equal (synonym-stream-symbol *standard-output*) *terminal-io*),但它返回 nil。
这很奇怪,因为(synonym-stream-symbol *standard-output*)返回*terminal-io*.
有任何想法吗?感谢您的任何建议。

Ren*_*nzo 8

原因是synonym-stream-symbol( manual ) 返回一个符号,而评估*terminal-io*返回与全局变量关联的流。

您可以简单地引用流的名称来检查哪个是正确的符号:

CL-USER> (eq (synonym-stream-symbol *standard-output*) '*terminal-io*)
T
Run Code Online (Sandbox Code Playgroud)