LISP - 正在返回充满#的列表

时间:2014-12-14 19:04:53

标签: list compression lisp common-lisp

有谁知道如何解决压缩Common Lisp的大列表

我得到了####(#0#)种类的名单而不是((黑色圆满)(白方空)......)应该

Lisp正在压缩我的列表,我希望在没有压缩的情况下发送到文件。 怎么样?

3 个答案:

答案 0 :(得分:2)

可能*print-circle*设置为T。很难说,鉴于你的模糊描述。

CL-USER 7 > (let ((foo '(BRANCA REDONDA BAIXA CHEIA))) (list foo foo))
(#1=(BRANCA REDONDA BAIXA CHEIA) #1#)

CL-USER 8 > (setf *print-circle* nil)
NIL

CL-USER 9 > (let ((foo '(BRANCA REDONDA BAIXA CHEIA))) (list foo foo))
((BRANCA REDONDA BAIXA CHEIA) (BRANCA REDONDA BAIXA CHEIA))

答案 1 :(得分:1)

相关变量为*print-level*。将它设置为如此低的值是不寻常的。

Lispworks还有dbg:*debug-print-level*hcl:*trace-print-level*,分别用于调试和跟踪输出。

要打印所有内容,请将*print-level*绑定到nil。这可以明确地完成,如

(let ((*print-level* nil))
  (print my-stuff))

或使用write的关键字参数:

(write my-stuff :level nil)

答案 2 :(得分:0)

发现问题,LispWorks开始充满内存并开始使用#来节省内存。如果我重新启动Lispworks(有时可以工作,有时候不会),它会显示完整列表。

感谢您的帮助!