【发布时间】:2014-02-10 16:31:05
【问题描述】:
我是 lisp 的新手,正在处理一个家庭作业问题以展平嵌套列表。我有我的功能,除了它需要“删除”虚线对。所以给定 (1 (2 3) (4 . 5) ((6 7) (89))) 我的函数应该输出 (1 2 3 4 5 6 7 8 9)。
所以..我的实际问题..
给定一个虚线对,例如(1 . 2),我怎样才能得到列表'(1 2)?
【问题讨论】:
-
您可能想试验一下函数 CONS 和 LIST。还有一些其他有用的功能。你的演讲应该得到一些指导。到目前为止,您尝试过什么?
-
另外,如果您搜索[lisp] flatten,您会在此处找到许多相关问题和答案。您或许可以在其中找到您要寻找的内容。
-
显然使用 car 和 cdr 非常简单。相对于我学过的所有其他语言,lisp 上的文档如此之少让我感到惊讶。
-
@rcj 实际上有很多;规范的超文本版本(HyperSpec)非常好。对于这种情况,您应该专门查看car and cdr accessors,更一般地查看章节14. Conses。
-
我想当我说文档时,我真的是在谈论我在谷歌上遇到的问题的能力。与其只从最初的几个谷歌搜索结果中选择一个来解决基本问题,我还必须筛选 bs 并深入挖掘只有半相关的线程才能得到我需要的东西。
标签: lisp common-lisp