我如何使用Clojurescript cljs.core.PersistentQueue队列?

时间:2014-12-15 15:05:38

标签: clojurescript

我似乎无法在Clojurescript cljs.core.PersistentQueue上找到任何文档。我应该使用它吗?或者我应该使用另一种制作Clojurescript队列的方法吗?

更新

与此同时,我正在使用频道,(<!, (>!并进行阻止,这似乎可以解决问题

2 个答案:

答案 0 :(得分:14)

ClojureScript实际上有一个用于创建队列的标记文字#queue [],我将Mike的答案放入repl后找到了

cljs.user=> cljs.core/PersistentQueue.EMPTY    
#queue []

cljs.user=> #queue []
#queue []

cljs.user=> (def q #queue [1 2 3])
#queue [1 2 3]

cljs.user=> (conj q 4)
#queue [1 2 3 4]

cljs.user=> (pop q)
#queue [2 3]

cljs.user=> (peek q)
1

答案 1 :(得分:9)

PersistentQueue是另一种持久性数据结构,与list,vector,map和set相比,具有不同的行为和性能特征。例如,如果查看poppeek的文档字符串,您会看到此数据类型被称为&#34; queue&#34;。

由于它没有文字语法,因此您必须先使用cljs.core.PersistentQueue/EMPTY创建一个空字符。

这篇文章提供了Clojure等效https://stackoverflow.com/a/2495105

的高级摘要