2013-08-02 12 views

risposta

16

espressioni più righe nella sintassi do devono essere rientrate al di là del nome della variabile:

main = do 
    let foo = case 0 of 
     0 -> 4 
    return() 

è ok ma

main = do 
    let foo = case 0 of 
     0 -> 4 
    return() 

non è.

+2

Per aggiungere, il motivo è che 'let' prende un blocco (come' do') con più binding - se preferisci uno stile di rientro non allineato, puoi spezzare la linea dopo 'let' come te farebbe con 'do'. –

+1

Questo mi morde costantemente. Ci si aspetterebbe che il rientro superasse 'let', ma in realtà è indentato oltre il nome della variabile. Mettere la variabile sulla propria linea funziona, ma sembra abbastanza brutta. – MathematicalOrchid

+2

Questo è davvero difficile da vedere. La differenza tra i due esempi è uno spazio all'inizio della linea '0 -> 4'. – greg7gkb

Problemi correlati