Compiler construction 如何创建Clojure Lint?

Compiler construction 如何创建Clojure Lint?,compiler-construction,clojure,lint,Compiler Construction,Clojure,Lint,常见Clojure编程错误的一个例子是,期望对惰性表达式进行副作用评估。表面上看,检查未使用的惰性表达式似乎会有所帮助。识别这个和那个的最佳方法是什么?核心编译器应该检查这些情况,还是应该在lint程序的域中进行检测?开始实施的好方法是什么?一些想法可以让事情开始;它可以检测到永远无法实现的惰性代码,或者指出将使用反射的区域。虽然一般来说,clojure作为一种语言来表达一组常见的可证明错误有点年轻?那么: 无的多方法:默认方法 缺少文档字符串 如果函数的参数总是同一类型,则建议使用类型提示

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

一些想法可以让事情开始;它可以检测到永远无法实现的惰性代码,或者指出将使用反射的区域。虽然一般来说,clojure作为一种语言来表达一组常见的可证明错误有点年轻?

那么:

  • 的多方法:默认
    方法
  • 缺少文档字符串
  • 如果函数的参数总是同一类型,则建议使用类型提示 论论据
  • 指出相同匿名函数的多个副本
  • 指出尾部递归并建议重组
  • 在函数足够的地方使用宏
  • 未使用的参数,尤其是
    &rest
    类型参数
  • 函数将使用bignum的位置 而不仅仅是整数或浮点
我不确定这些检查将如何实施,但它们肯定会为我节省很多时间