2024 Clojure现状调查!中分享您的想法。

欢迎!请查看关于页面以了解更多关于如何工作的信息。

+9
语法和reader

Clojure的PersistentQueue结构已经在语言中存在一段时间,并且已经进入了许多代码库。然而,队列的创建通常是两个步骤的操作,通常形式如下

`
(conj clojure.lang.PersistentQueue/EMPTY :a :b :c)

;=> #
`

可能有一个更好的体验,如下所示

`

queue [: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 case

queue [1 2 (+ 1 2)]

;=> #queue [1 2 (+ 1 2)]

;; eval case

queue [1 2 (+ 1 2)]

;=> #queue [1 2 3]
`

此开放问题的答案将决定实施。

20回答

0

评论者:jafingerhut

clj-976-queue-literal-eval-and-synquote-patch-v3.txt 日期为2012年10月16日,与Fogus修补程序CLJ-976-queue-literal-eval-and-synquote.diff 日期为2012年7月20日相同。它只删除了一个在clojure.iml中添加的行,Rich之后在不同的提交中添加了该行,因此该补丁现在可以干净地应用于最新主分支。

0

评论者:jafingerhut

由于最近提交了一个针对CLJ-1070的补丁,我于2012年10月16日提交的修改过的补丁文件clj-976-queue-literal-eval-and-synquote-patch-v3.txt无法完美应用。在这种情况下,不仅仅是几行上下文发生了变化,持久队列实现的接口也已经被更改。在这种情况下,最好您查看最新的代码和补丁,并考虑如何进行更新。

0

评论者:[email protected]

与CLJ-1078相关。

0

评论者:alexmiller

由于Rich尚未审查,将其回退到需_triaged。

0
参考: https://clojure.atlassian.net/browse/CLJ-976 (由fogus报告)
...