我似乎无法在Clojurescript cljs.core.PersistentQueue上找到任何文档。我应该使用它吗?或者我应该使用另一种制作Clojurescript队列的方法吗?
与此同时,我正在使用频道,(<!, (>!
并进行阻止,这似乎可以解决问题
答案 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相比,具有不同的行为和性能特征。例如,如果查看pop
和peek
的文档字符串,您会看到此数据类型被称为&#34; queue&#34;。
由于它没有文字语法,因此您必须先使用cljs.core.PersistentQueue/EMPTY
创建一个空字符。
这篇文章提供了Clojure等效https://stackoverflow.com/a/2495105
的高级摘要