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

欢迎!请参阅关于页面了解有关此方式的更多信息。

0票数
编译器

可能破坏编译器,使得在语句位置上向量输出错误(我意外地这样做了)。这不会破坏Clojure测试套件的任何部分,但确实破坏了有效的Clojure代码(对我而言是在taoensso的encore中)。向测试套件添加测试,以便捕捉这类缺陷。

8 个回答

0票数

评论由: [email protected]发表

这里还需要做编译器变更吗?

0票数

评论由: alexmiller发表

我认为他是在说编译器没问题,但如果有问题,没有测试会告诉你。

0票数

评论由: michaelblume发表

是的。

0票数

评论由: jafingerhut发表

Clojure 编译器接受这样的 'code' 是偶然的吗?如果我在项目中发现 Clojure 代码是这样的,我会认为这可能是一个错误。

0票数

评论由: alexmiller发表

在我看来,这似乎应该是有效的代码(尽管没有太多理由在除最后一行表达式外的情况下做这件事)。

0票数

评论由: jafingerhut发表

(链接:facepalm) 当然,这在返回位置应该是有效的,因为这样可以返回这样的向量和映射。远离返回位置的是奇怪的东西,但正如你所说的,编译器没有理由拒绝它。

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报告)
...