欢迎!请参见关于页面以了解更多关于这个平台的信息。
Clojure的PersistentQueue结构现在已经存在于语言中很长时间,并被广泛用于各种代码库中。然而,创建队列通常是一个两步操作,常见的形式如下
`(conj clojure.lang.PersistentQueue/EMPTY :a :b :c)
`
;=> # `
更好的体验可能是以下形式
;=> #queue [:a :b :c]
(pop #queue [:a :b :c])
;=> #queue [:b :c] `
这种语法已由https://groups.google.com/forum/?fromgroups#!topic/clojure-dev/GQqus5Wycno上的Clojure-dev小组提出和讨论。
开放式问题:队列字面量的参数应该进行求值吗?以下示例说明了这一点的影响
`;;非求值情况
;=> #queue [1 2 (+ 1 2)]
;;求值情况
;=> #queue [1 2 3] `
这个开放问题的答案将决定实现的方式。
评论人:jafingerhut
日期为2012年10月16日的clj-976-queue-literal-eval-and-synquote-patch-v3.txt与Fogus的日期为2012年7月20日的CLJ-976-queue-literal-eval-and-synquote.diff补丁相同。它只是删除了一条被Rich在另一项提交中添加到clojure.iml中的行,因此此补丁现在可以干净地应用到最新master版本。
Fogus,由于最近提交了针对CLJ-1070的补丁,我修改后的补丁clj-976-queue-literal-eval-and-synquote-patch-v3.txt,日期为2012年10月16日,不能干净地应用。在此情况下,不仅仅是上下文的一两行发生了变化,它所实现的接口——持久队列——已经发生了变化。在这种情况下,最好查看最新的代码和补丁,并考虑如何进行更新。
评论者:[email protected]
与CLJ-1078相关。
评论者:alexmiller
由于Rich尚未审核,将其退回“已审理”状态。