我今天发现了一个错误,该错误最终是由我的代码中某处的以下片段引起的(我试图在列表中仅过滤“主键”约束):
(filter #(= (% :constraint_type "PRIMARY KEY")) aListOfconstraints)
而不是正确的:
(filter #(= (% :constraint_type) "PRIMARY KEY") aListOfconstraints)
即错误是在未找到密钥的情况下采用默认参数的映射的组合效果,如:
({:a 1 :b 2} :a 0)
... 以及仅接受一个参数并返回 true 的 equal 函数:
(= 1) ; evals to true
有没有我可以使用的工具来提示我输入这种有效但可疑的代码?或者也许是我不知道的一些最佳实践?