Rob*_*lan 10 clojure transient data-structures
Clojure对其一些持久性数据结构,向量,映射和集合具有瞬态类似物.对于向量,有pop!
和conj!
函数,类似于pop
和conj
持久向量,但没有peek!
.
是否有技术上的原因使得有效实施peek!
不可能?或者在瞬态向量的大多数用例中它是不是必需的?我总能这样做
(defn peek! [tvec] (get tvec (dec (count tvec))))
Run Code Online (Sandbox Code Playgroud)
但似乎很奇怪,没有内置的解决方案.
这的确是最好的指向ggroup一个设计问题,但FWIW,我没有调查peek
/ peek!
前一段时间,并提供peek!
似乎是创建一个新的简单的事情clojure.lang.ITransientStack
接口平行clojure.lang.IPersistentStack
,并具有瞬态载体实现它.
我的猜测是,如果这样的接口尚未可用(并由瞬态使用),则可能是优先级问题.Clojure中已经提供了单线程快速堆栈实现java.util.Stack
,因此我们不会错过这里的许多功能; 句法方便和顺利转换为持久性向量可能会在Clojure-in-Clojure上取得进展.
(在投入的努力回报很高的情况下,即使最终目标最终放弃Java代码库的相关部分并将其替换为Clojure中的实现,对Clojure的Java端的改进也是有意义的.等待协议更普遍地使用可能更有意义等.当前可用的处理瞬态的函数集足以满足Clojure自身的需求,我不确定peek!
ggroup上是否有过调用- 至于#clojure,我记得一个相关的谈话 - 所以回报可能被判断为低......你可以开始草根运动来改变这一点.:-))
归档时间: |
|
查看次数: |
701 次 |
最近记录: |