分享您的看法,请参加2024 Clojure状态调查!

欢迎!请参阅关于页面,了解更多关于这是如何工作的信息。

0
编译器

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

8 答案

0

评论由:[email protected] 发布

这里也需要编译器变更吗?

0

评论由:alexmiller 发布

我认为他的意思是编译器没有问题,但如果有问题,没有任何测试会告诉你。

0

评论由:michaelblume 发布

是的。

0

评论由:jafingerhut 发布

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

0
by

评论由:alexmiller 发布

在我看来,这似乎应该是有效的代码(除非它是主体中的最后一个表达式,否则通常没有必要这样做)。

0
by

评论由:jafingerhut 发布

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

0
by

评论由:alexmiller 发布

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

`
user=> (let []

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

hi
there
1
`

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