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

欢迎!请参阅关于页面以获取更多有关如何使用该作品的信息。

0
编译器

可能破坏编译器,使得向量在语句位置发出错误(我无意中做了这件事)。这不会破坏Clojure测试套件的任何部分,但它会破坏有效的Clojure代码(对我来说它触发了taoensso的encore)。向测试套件添加测试,以便捕获此类缺陷。

8 答案

0

评论由:[email protected]发表

这里也需要编译器改动吗?

0

评论由:alexmiller发表

我认为他是在说编译器没有问题,如果没有的话,任何测试都不能告诉你。

0

评论由:michaelblume发表

是的。

0

评论由:jafingerhut发表

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

0

评论由:alexmiller发表

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

0

评论由:jafingerhut发表

(链接:脸 désespéré) 当然,在返回位置应该有效,因为返回这种向量和映射。离开返回位置的是那个奇怪的东东,但正如你所说的,没有理由编译器应该拒绝它。

0

评论由:alexmiller发表

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

`
user=> (let []

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

hi
there
1
`

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