我可以帮您翻译成中文:如何使用Clojurescript的cljs.core.PersistentQueue队列?

8

我似乎找不到任何关于Clojurescript cljs.core.PersistentQueue的文档。我应该使用它吗?或者我应该使用另一种方法来创建Clojurescript队列?

更新

与此同时,我正在使用通道、(<!, (>!和go块,这似乎可以解决问题。

2个回答

17

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

很酷。我之前没听说过这个。 - yazzapps.com

9
一个 PersistentQueue 是另一种持久化数据结构,与列表、向量、映射和集合相比具有不同的行为和性能特征。例如,如果您查看 poppeek 的文档字符串,您将看到这个数据类型被称为 "queue"。
由于它没有字面语法,您必须通过使用 cljs.core.PersistentQueue/EMPTY 创建一个空队列。
此帖子提供了 Clojure 等效项的很好的高级摘要:https://dev59.com/m3E95IYBdhLWcg3wCJNf#2495105

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接