【发布时间】:2013-06-25 06:53:27
【问题描述】:
在 clojure 中,您有几个函数对向量和列表有不同的作用。我有两个问题。
1) 它有什么用? 我相信clojure的创造者有很好的理由这样做,但我不知道。
2) 如何使这些函数的类型安全变体无论数据是在列表还是向量中都将以相同的方式运行?
定义的函数 conj 具有以下行为
(conj [1 2 3] 4)
[1 2 3 4]
(conj '(1 2 3) 4)
(4 1 2 3)
我想要一个具有以下行为的函数 my-conj
(my-conj [1 2 3] 4)
[1 2 3 4]
(my-conj '(1 2 3) 4)
(1 2 3 4)
还有其他功能(cons、into、peek、pop)具有相同的行为,所以如果这种结构可以很容易地适应所有这些功能,那就太好了。
【问题讨论】:
-
它们具有不同的性能特征,因此您可以在适当的情况下使用它们。你想用它们做什么,你是否有理由不能确保你的代码使用一种或另一种形式?
标签: clojure