Haskell - “La última declaración en una construcción de 'hacer' debe ser una expresión”

StackOverflow https://stackoverflow.com/questions/2016963

  •  19-09-2019
  •  | 
  •  

Pregunta

Como se dice en el título: ¿Qué significa The last statement in a 'do' construct must be an expression? Terminé mi bloque do con un putStrLn como lo demuestra en varios ejemplos que he visto, y me da un error.

Código:

main = do args <- getArgs
           file <-readFile "TWL06.txt"
           putStrLn results
¿Fue útil?

Solución

La mayoría de las veces, es porque su código es mal alineados y el compilador asume que su bloque "hacer" finalizó antes de tiempo (o tiene código adicional que importa realmente pertenece allí)

Otros consejos

Su última línea no es algo así como someVar <- putStrLn "hello", por casualidad, ¿verdad? Usted obtendrá ese error si se intenta hacer una variable vinculante en la última línea, porque es equivalente a putStrLn "Hello" >>= \someVar -> -. Se espera que haya una expresión al final

muesca incorrecta puede dar lugar a este error. Además, es bueno no utilizar pestañas, sólo espacios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top