【问题标题】:About the function NCONC in Common Lisp关于 Common Lisp 中的函数 NCONC
【发布时间】:2014-11-29 15:37:39
【问题描述】:

我通过输入以下代码得到了真正的堆栈溢出

(setf l1 (list 1))

(setf l2 (list 2))

(nconc l1 l2)

(nconc l2 l1)

哎呀...

这是一个错误吗?

【问题讨论】:

  • 将*PRINT-LENGTH* 设置为5。
  • 你打算创建一个循环列表,不是吗?
  • @Barmar 哦,我知道。 NCONC 会在操作后返回第一个列表。
  • NCONC 没有溢出堆栈,REPL 是在尝试打印值时。
  • 或者将*print-circle*设置为t。

标签: function common-lisp stack-overflow circular-list


【解决方案1】:

并非如此。打印一个永无止境的清单永远不是一件好事。

将*print-circle* 设置为T 以查看列表的结构。

这只不过是 #1=(foo . #1#) 永无止境的本质而已

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2011-05-16
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多