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

欢迎!请查阅关于页面以了解如何操作。

0
编译器

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

8 个答案

0

评论者:[email protected]

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

0

评论者:alexmiller

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

0

评论者:michaelblume

是的。

0

评论者:jafingerhut

Cljs编译器接受这样的'代码'是偶然的吗?如果我在一个项目中看到这样的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 (由michaelblume报告)
...