欢迎!请查看关于页面以获取更多有关如何使用本网站的信息。
有可能会破坏编译器,使得向量在语句位置时发出错误(我不小心做了这件事)。这并不会破坏Clojure测试套件的任何部分,但它确实会破坏有效的Clojure代码(对我而言它破坏了taoensso的encore)。向测试套件添加测试以便捕获这类缺陷。
评论由:[email protected]发表
这里也需要做编译器的更改吗?
评论由:alexmiller发表
我认为他是在说编译器没有问题,但如果它有问题,没有任何测试会告诉你。
评论由:michaelblume发表
是的,就是这样。
评论由:jafingerhut发表
Clojure编译器接受“代码”这样的组合是意外吗?如果我在项目中看到这种Clojure代码,我会认为它是一个错误。
在我看来,这似乎应该是有效的代码(尽管除非它是体内的最后一个表达式,否则没有多少理由这样做)。
(链接:脸红) 当然,这应该在返回位置有效,因为返回这种向量或映射。在返回位置之外的是那个看起来有些古怪的东西,但你所说的,编译器没有必要拒绝它。
请注意,集合的元素将被评估,因此由集合中的代码引发的外部效应将被执行。
`user=> (let []
`
[(future (println "hi")) (future (println "there"))] 1)
hithere 1 `