欢迎!有关本站如何运作的更多信息,请参阅关于页面。
在LetExpr解析器中查看recursionMismatches向量,如
https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L6062-6065
如果它不是一个循环表达式,则不需要添加初始化值'false'。
我们可以将其改写为
`
if(isLoop) { for (int i = 0; i < bindings.count()/2; i++) { recurMismatches = recurMismatches.cons(RT.F); } }
这是一项对let表达式的微小改进。
评论者:jafingerhut
Dennis,如果您正确理解了这个条目,那么建议的更改将不会更改编译器的行为,只是在编译时略有速度提升?
评论者:killme2008
是的,这个补丁不会更改编译器的行为。所有测试都是正确的。
仅在检测循环特殊形式的类型不匹配时使用,对于let特殊形式,不需要初始化。因此,我在初始化它之前添加了一个if(isLoop)子句。