An attempt to print a circular structure with *print-circle* set
to nil may lead to looping behavior and failure to terminate.
然后就是这样:
Why does this Lisp macro as a whole work, even though each piece doesn't work?
显然,将*print-circle*
设置为nil会导致意外。为什么在许多系统上默认将*print-circle*
设置为nil?如果我从代码的开头全局设置为t,会出现什么问题?
答案 0 :(得分:8)
如果将*print-circle*
设置为true,那么所有输出函数都必须进行循环检查。这意味着它们可能会减速并占用更多内存。
如果你实际上没有使用循环结构(我不是Lisp pro,但我倾向于像瘟疫那样避开它们),我不会在生产代码中打开循环检查。