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

欢迎!请参见关于页面以了解更多关于这个平台的信息。

+9
语法和读取器

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小组提出和讨论。

开放式问题:队列字面量的参数应该进行求值吗?以下示例说明了这一点的影响

`
;;非求值情况

queue [1 2 (+ 1 2)]

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

;;求值情况

queue [1 2 (+ 1 2)]

;=> #queue [1 2 3]
`

这个开放问题的答案将决定实现的方式。

20个答案

0

评论人: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版本。

0

评论人:jafingerhut

Fogus,由于最近提交了针对CLJ-1070的补丁,我修改后的补丁clj-976-queue-literal-eval-and-synquote-patch-v3.txt,日期为2012年10月16日,不能干净地应用。在此情况下,不仅仅是上下文的一两行发生了变化,它所实现的接口——持久队列——已经发生了变化。在这种情况下,最好查看最新的代码和补丁,并考虑如何进行更新。

0

评论者:[email protected]

与CLJ-1078相关。

0

评论者:alexmiller

由于Rich尚未审核,将其退回“已审理”状态。

0
...