如何创造一个Clojure Lint?

Tim*_*ley 13 compiler-construction lint clojure

常见的Clojure编程错误的一个例子是期望评估延迟表达式的副作用.从表面上看,检查未使用的惰性表达式会有所帮助.识别这个和其他常见错误的最佳方法是什么?核心编译器是否应检查这些情况,还是应该检测到lint程序的域?什么是开始实施的好方法?

cla*_*taq 4

怎么样:

  • 没有:default方法的多方法
  • 缺少文档字符串
  • 如果函数的参数始终是相同类型,则建议对参数进行类型提示
  • 指出相同匿名函数的多个副本
  • 指出尾递归并建议重组
  • 在函数就足够的地方使用宏
  • 未使用的参数,尤其& rest是类型参数
  • 函数将使用 BigNum 而不仅仅是整数或浮点数

不确定这些检查将如何实施,但它们肯定会在很多时候让我摆脱困境。