2024 Clojure状态调查! 中分享您的看法。

欢迎!有关该功能的更多信息,请参阅 关于 页面。

0
编译器

存在一种可能,编译器出错,使得在状态位置时向量被错误地发出(我无意中进行了这项操作)。这不会破坏Clojure测试套件的任何部分,但会破坏有效的Clojure代码(对我而言它影响到了taoensso's encore)。向测试套件中添加测试,以便捕获此类缺陷。

8 个答案

0

评论者:[email protected]

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

0

评论者:alexmiller

我认为他说的编译器没有问题,但如果没有问题,就没有测试能够告诉您。

0

评论者:michaelblume

是的,就是这样。

0

评论者:jafingerhut

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