Clojure vs. Lisp:为什么不在Clojure中使用具体的虚线对?

时间:2017-11-29 16:45:38

标签: clojure common-lisp

this讨论中,一张海报(迈克拉)说

  

Clojure中没有虚线对。

     

这样做的哲学原因是Clojure避免使用a   具体的“配对”数据结构,而是强调抽象   “序列”可以具体实现。

有人可以详细说明或指出一些关于这意味着什么的文献吗?这是一种更优雅或数学上纯粹的方法吗?

1 个答案:

答案 0 :(得分:4)

以下链接指向Rich回答有关其设计决策的一系列问题https://gist.github.com/reborg/dc8b0c96c397a56668905e2767fd697f

虽然这个清单并没有明确解释为什么没有具体的"对"数据结构可以让您深入了解Rich对实用的一般设计的偏好。

我记得曾经有一段时间讨论过引入一个" tuple"这本来就像一个只有两个元素的向量,以避免在使用双元素向量时发生不必要的内存分配。

介绍这些东西会产生复杂的成本,因此您可以假设成本/收益分析无法将其添加到代码库中。

查看有关Clojure Jira项目的关于添加元组的讨论,您将看到任何想法如何通过它的步伐:

https://dev.clojure.org/jira/browse/CLJ-1517