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?
13
A
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?
Problemi correlati
- 1. Come si crea un albero di ricerca binario in Clojure?
- 2. Come si crea un metaclasse?
- 3. Come si crea un array JSON?
- 4. Come si crea un array di tuple?
- 5. Come si crea un conduit "ramificato"?
- 6. Come si crea un "percorso" in wordpress?
- 7. Come si crea un array di punti?
- 8. Come si crea un gamepad virtuale?
- 9. Come si crea un oggetto TwoLineListItem?
- 10. Come si crea un timer in WPF?
- 11. Come si crea un dizionario in Java?
- 12. Come si crea un array di puntatori?
- 13. Come si crea un modulo Perl?
- 14. Zend Come si crea un LEFT JOIN
- 15. Come si crea un div "tabbable"?
- 16. Come si crea un figlio NSManagedObjectContext?
- 17. Come si crea un percorso casuale?
- 18. Crea una classe Java come sequenza in Clojure
- 19. PyBrain: quando si crea una rete da zero come e dove si crea un pregiudizio?
- 20. Come si crea funzioni stub?
- 21. Defrecord di Clojure - come si usa?
- 22. Come si inserisce un valore enum Postgres utilizzando Clojure JDBC?
- 23. Come si modifica una porzione di un vettore in Clojure?
- 24. Come si crea un tag div in un collegamento
- 25. SWIFT: come si crea un predicato con un valore Int?
- 26. Come si crea un bordo personalizzato attorno a un UIView?
- 27. Come si usa Zip in Clojure?
- 28. Lint for C#
- 29. Come si crea Atom come editor predefinito?
- 30. errore Lint sul Okio