2015-06-12 2 views
10

SfondoDove sono consentite le interruzioni di riga nelle espressioni Haskell?

La maggior parte delle guide di stile raccomandano linea tenuta lunghezze o meno 79 caratteri. In Haskell, le regole di indentazione significano che spesso le espressioni devono essere spezzate con nuove linee.

Domande:

All'interno espressioni, dove è legale per inserire una nuova linea?

È documentato da qualche parte?


domanda estesa: vedo GHC formattare il mio codice quando si segnala un errore in modo che qualcuno ha trovato il modo di automatizzare il processo di rottura linee lunghe. Esiste un programma di utilità in cui posso inserire il codice haskell e sputare il codice in modo che risulti ben formattato?

+0

Dai un'occhiata a questo pacchetto https://hackage.haskell.org/package/haskell-formatter – Arnon

+4

La formattazione di google haskell avrebbe dovuto darti diversi risultati utili. Gli spazi bianchi (incluse le nuove righe) vengono ignorati in haskell, ad eccezione della regola di indentazione (il codice deve essere almeno rientrato come il blocco a cui appartiene, semplificato). – Cubic

risposta

5

È possibile posizionare una nuova riga ovunque tra i token lessicali di un'espressione. Tuttavia, ci sono dei vincoli sulla quantità di indentazione che potrebbe seguire la nuova riga. La semplice regola empirica è di indentare la riga successiva per iniziare a destra della riga che contiene l'espressione. Oltre a ciò, alcune cose di stile:

  • Se si indentazione un'espressione che compare in una definizione name = expression, è bene lo stile per far rientrare alla destra del segno =.

  • Se si indentazione un'espressione che appare sul lato destro di un do vincolante o un elenco di comprensione, è bene lo stile per far rientrare alla destra del segno <-.

La documentazione autorevole è probabilmente il Haskell 98 Report (Chapter 2 sulla struttura lessicale), ma personalmente non trovo questo materiale molto facile da leggere.