2009-12-21 19 views
13

Un ejemplo de error común de programación de Clojure es que se espera que se evalúen los efectos secundarios de una expresión perezosa. En la superficie, parece que sería útil verificar las expresiones perezosas no utilizadas. ¿Cuál sería el mejor enfoque para identificar esto y otros common mistakes? ¿Debería el compilador central verificar estas situaciones, o debería ser el dominio de un programa de pelusas para detectar? ¿Cuál sería una buena manera de comenzar la implementación?¿Cómo se podría crear una Clojure Lint?

Respuesta

4

¿Qué tal:

  • métodos múltiples con ningún método :default
  • cadenas de documentación que falta
  • En los casos en que el argumento de una función es siempre el mismo tipo, lo que sugiere tipo insinúa en argumentos
  • Señalando múltiples copias de funciones idénticas anónimas
  • Señalando la recursividad final y sugiriendo la reestructuración
  • Usando una macro en una función sería suficiente
  • argumentos utilizados, especialmente & rest argumentos de tipo
  • Cuando una función utilizará bignums en lugar de sólo enteros o punto

No sabe cómo estos controles flotantes haría ser implementado, pero seguramente me salvarían de mí mismo la mayor parte del tiempo.

1

Un par de ideas solo para comenzar; podría detectar código perezoso que nunca se puede realizar, o señalar áreas donde se usará la reflexión. Aunque en general, ¿es clojure un poco joven como lenguaje para expresar un conjunto común de errores comprobables?

Cuestiones relacionadas