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

欢迎!请参阅关于页面以获取更多关于如何使用此站点的信息。

0
编译器

可以破坏编译器,使得当向量处于语句位置时输出错误(我无意中做到了这一点)。这不会破坏Clojure测试套件的任何部分,但它确实会破坏有效的Clojure代码(对我而言是影响了taoensso的encore)。向测试套件添加测试以捕获此类缺陷。

8 答案

0

评论者:[email protected]

这里也需要进行编译器更改吗?

0

评论者:alexmiller

我认为他的意思是编译器是好的,但如果不是这样的话,没有任何测试会导致你注意到。

0

评论者:michaelblume

是的,就是这个。

0

评论者:jafingerhut

是意外吗?Clojure 编译器接受这样的 'code'?如果我在项目中看到这样的 Clojure 代码,我会假设它是一个错误。

0

评论者:alexmiller

在我看来,这似乎应该是有效的代码(尽管除非它是主体中的最后一项,否则没有理由这样做)。

0

评论者:jafingerhut

(链接:脸红)当然,在返回位置使用这样的向量和映射应该是有效的。远离返回位置的是看似奇特的东西,但正如你所说,编译器没有理由拒绝它。

0

评论者:alexmiller

请注意,集合的元素将被求值,因此由集合中的代码引发的副作用将被执行。

`
user=> (let []

     [(future (println "hi")) (future (println "there"))] 
     1)

hi
there
1
`

0
参考:[https://clojure.atlassian.net/browse/CLJ-1776](https://clojure.atlassian.net/browse/CLJ-1776)(michaelblume 报告)
...