如何创造一个Clojure Lint?

时间:2009-12-21 04:45:17

标签: compiler-construction clojure lint

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

2 个答案:

答案 0 :(得分:4)

怎么样:

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

不确定如何实施这些检查,但他们肯定会在很多时候将我从自己身上拯救出来。

答案 1 :(得分:1)

一些想法只是为了开始;它可以检测永远无法实现的惰性代码,或者指出将使用反射的区域。虽然一般来说,作为一种表达一系列可证明的错误的语言,有些年轻人可以作为一种语言吗?