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

欢迎!有关如何使用本网站的更多信息,请参阅关于 页面。

+9
语法和读取器

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

`
(conj clojure.lang持续性队列/ EMPTY :a :b :c)

;=> #
`

可能有一种更好的体验如下

`

queue [:a :b :c]

=> #queue [:a :b :c]

(弹 #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 (+ 1 2)]

;;评估案例

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 日)相同。它只是删除了一条 Rich 随后在另一个提交中添加的 clojure.iml 中的行,因此此补丁现在可以干净地应用到最新主分支。

0

评论者:jafingerhut

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

0

评论者:[email protected]

与CLJ-1078有关。

0

评论者:alexmiller

由于Rich尚未审核,问题状态变更为“已三度审查”。

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