我在Windows上使用Clozure Common Lisp。使用//Make sure to add System.IO namespace, if not already present:
//using System.IO;
var file = new File.ReadLines("C:\Path\To\File.txt");
var firstLine = file.FirstOrDefault();
命令并评估一些简单的形式,然后关闭DRIBBLE
流时,将创建一个指定的文件,但不写入任何内容。
DRIBBLE
这是Windows上CCL的已知限制还是我的环境有问题?
答案 0 :(得分:1)
如果查看dribble
(特别是process-dribble
)的源代码,您会发现CCL将*TERMINAL-IO*
流重定向到双向流。如果您尝试直接写入该流(当然可以在之后调用finish-output
,那么该文件将被写入。
> (dribble "/tmp/log")
> (print "test" *terminal-io*)
> (dribble)
运球的用例,至少在CCL中已实现(运球的行为实际上是未指定的),将在无法轻松记录会话的终端上使用。在像Lispbox / Slime这样的IDE下,还有其他存储命令的机制,例如保存当前REPL的缓冲区。