2009-12-21 20 views
13

Un esempio di errore di programmazione Clojure comune è l'attesa di una espressione pigra da valutare per gli effetti collaterali. In apparenza sembra utile controllare le espressioni pigre inutilizzate. Quale sarebbe l'approccio migliore per identificare questo e altri common mistakes? Il compilatore principale dovrebbe verificare queste situazioni o dovrebbe essere il dominio di un programma di filtraggio da rilevare? Quale sarebbe un buon modo per iniziare l'implementazione?Come si crea un Clojure Lint?

risposta

4

ne dite:

  • multimethods con nessun metodo :default
  • stringhe documentazione mancante
  • Nei casi in cui l'argomento di una funzione è sempre lo stesso tipo, tipo suggerendo accenna su argomentazioni
  • Indicare più copie di identiche funzioni anonime
  • Puntare la ricorsione della coda e suggerire la ristrutturazione
  • utilizzando una macro in cui una funzione basterebbe
  • argomenti non utilizzati, in particolare & rest argomenti di tipo
  • Dove una funzione utilizzerà bignum invece di soli interi o in virgola mobile

non è sicuro come questi controlli sarebbero essere implementato, ma sicuramente mi salveranno da me stesso molto tempo.

1

Un paio di idee solo per iniziare; potrebbe rilevare il codice pigro che non può mai essere realizzato o indicare le aree in cui verrà utilizzato il riflesso. Sebbene in generale il clojure sia un po 'giovane come lingua per esprimere un insieme comune di errori dimostrabili?