Domanda

Come si dice nel titolo: Cosa significa The last statement in a 'do' construct must be an expression significa? Ho finito il mio blocco do con una putStrLn come si vede in molti esempi che ho visto, e si ottiene un errore.

Codice:

main = do args <- getArgs
           file <-readFile "TWL06.txt"
           putStrLn results
È stato utile?

Soluzione

La maggior parte del tempo, è perché il codice è mis-allineati e compilatore presuppone che il blocco "fare" è stata interrotta (o ha il codice in più che davvero non ci appartengono)

Altri suggerimenti

La tua ultima riga non è qualcosa come someVar <- putStrLn "hello", per caso, non è vero? Otterrete questo errore se si tenta di fare una variabile vincolante per l'ultima riga, perché è equivalente a putStrLn "Hello" >>= \someVar -> -. Si aspetta che ci sia un'espressione alla fine

indentazione non corretto può portare a questo errore. Inoltre, è bene non utilizzare le schede, solo spazi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top