欢迎!有关该功能的更多信息,请参阅 关于 页面。
存在一种可能,编译器出错,使得在状态位置时向量被错误地发出(我无意中进行了这项操作)。这不会破坏Clojure测试套件的任何部分,但会破坏有效的Clojure代码(对我而言它影响到了taoensso's encore)。向测试套件中添加测试,以便捕获此类缺陷。
评论者:[email protected]
这里也需要编译器更改吗?
评论者:alexmiller
我认为他说的编译器没有问题,但如果没有问题,就没有测试能够告诉您。
评论者:michaelblume
是的,就是这样。
评论者:jafingerhut
Clojure编译器接受这种'代码'是偶然的吗?如果我在项目中看到这样的Clojure代码,我想我会认为它是错误的。
在我看来,这似乎应该是有效的代码(除非它是一个体中的最后一个表达式,否则没有理由这样做)。
(链接:面露尴尬) 当然,这在返回位置应该有效,因为返回这样的向量和映射。在返回位置之外是看起来很奇怪的,但正如你说的,编译器没有理由拒绝它。
请注意,集合的元素将被评估,因此由集合中的代码触发的外部效应将会执行。
`user=> (let []
`
[(future (println "hi")) (future (println "there"))] 1)
hithere 1 `