In che ordine deve essere organizzato il codice in un singolo file Lisp? C'è qualche linea guida di stile comune che consente ad altri programmatori di leggerezza di comprendere facilmente il codice?
Effettuare ricerche su google per linee guida per lo stile libero produce molti risultati; tra questi:
- Common Lisp Style Guide da Google
- Emacs Lisp guida stile Community-driven by Bozhidar Batsov , contiene dettagli sulla formattazione, indentazione, saperi contro schede.
- Tutorial su buona Lisp stile di programmazione da Peter Norvig e Kent Pitman , dettagli il ragionamento dietro ad aderire a uno stile e alla logica per fare determinate scelte.
Tuttavia, non sembra discutere di come funzioni e altre definizioni dovrebbero essere organizzate all'interno di un singolo file sorgente.
"Pulisci codice" di Martin Fowler (che non è specificamente indirizzato a Lisp) raccomanda di organizzare funzioni / metodi dall'alto verso il basso: prima descrivendo il codice in modo astratto e poi approfondendo e approfondendo i dettagli. Quale è secondo me un buon modo per organizzare le definizioni delle funzioni.
Tuttavia, quando le definizioni delle funzioni sono ordinate dall'alto verso il basso, il REPL di SBCL fornisce caught STYLE-WARNING: undefined function: …
quando si carica un file Lisp. Quindi sembra che SBCL pensi di usare una funzione prima di definirla come un cattivo stile.
Qual è la migliore pratica per l'ordine delle definizioni? Preferibilmente senza che ciò comporti avvisi di compilatore / interprete.