欢迎!有关此工作的更多信息,请参阅关于页面。
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小组中被提出并讨论。
开放性问题:队列字面量的参数应该进行评估吗?这的影响如下所示
`;; non-eval情况
;=> #queue [1 2 (+ 1 2)]
;; eval情况
;=> #queue [1 2 3] `
对这一开放问题的回答将决定实现。
评论者:jafingerhut
clj-976-queue-literal-eval-and-synquote-patch-v3.txt(2012年10月16日)与Fogus的patch CLJ-976-queue-literal-eval-and-synquote.diff(2012年7月20日)相同。它只是移除了一条Rich后来在另一个提交中添加的clojure.iml中的一行,因此这个补丁现在可以干净地应用于最新的master。
Fogus,由于CLJ-1070补丁的最近提交,我修改后的补丁clj-976-queue-literal-eval-and-synquote-patch-v3.txt(日期为2012年10月16日)无法干净地应用。在这种情况下,不仅仅是上下文中的一行或多行发生了变化,而且是PersistentQueue实现的接口已经发生了变化。你可能最好查看最新的代码和补丁,并考虑如何更新它。
评论者:[email protected]
与CLJ-1078相关。
评论者:alexmiller
将该问题移回待定类别,因为Rich尚未审核。