Haskell - « La dernière déclaration dans une construction « faire » doit être une expression »

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

  •  19-09-2019
  •  | 
  •  

Question

Comme il est dit dans le titre: Qu'est-ce que The last statement in a 'do' construct must be an expression signifie? J'ai fini mon bloc do avec un putStrLn comme il montre plusieurs exemples que je l'ai vu, et je reçois une erreur.

Code:

main = do args <- getArgs
           file <-readFile "TWL06.txt"
           putStrLn results
Était-ce utile?

La solution

La plupart du temps, il est parce que votre code est mal aligné et compilateur suppose que votre « faire » a pris fin prématurément bloc (ou a un code supplémentaire qui vraiment n'appartiennent là-bas)

Autres conseils

La dernière ligne n'est pas quelque chose comme someVar <- putStrLn "hello", par hasard, est-il? Vous obtiendrez cette erreur si vous essayez de faire une variable de liaison sur la dernière ligne, parce qu'il est équivalent à putStrLn "Hello" >>= \someVar -> -. Il attend qu'il y ait une expression à la fin

indentation incorrecte peut conduire à cette erreur. Aussi, est bon de ne pas utiliser les onglets, seuls espaces.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top