Question

mauvaises nouvelles ce matin, j'étais prêt à essayer d'utiliser Leksah (agréable à regarder l'application par la voie) pour continuer haskell apprentissage.

Je ne pourrais pas compiler l'exemple "Bonjour tout le monde" J'ai trouvé lire le leksah tutoriel .

module Main (
main = putStrLn "Hello World"     
) where

compilation-error: src\Main.hs:16:5: parse error on input = ' `

et

module Main (
) where
main = putStrLn "Hello World"

compilation-error: src\Main.hs:1:0: The main functionmain' ne sont pas exportées par le module Main'

Que me conseillez-vous d'essayer autre chose?

IMPORTANT EDIT : Maintenant Leksah est livré avec un fichier Main.hs, chargé directement la première fois que vous lancez leksah, qui contient un mini-entièrement Bonjour Monde fonctionnel projet. Il a également une partie de compteur de test unitaire minimaliste. Idéal pour les débutants : -)

Était-ce utile?

La solution

Le texte du nom après les parenthèses du module est une liste d'exportation. Cela signifie que vous devez mettre toutes les fonctions du programme que vous voulez exporter là-dedans. Mais à part cela, vous devez également définir votre part principale fonction. Essayez ceci:

module Main (
  main
) where
main = putStrLn "Hello World"

PS:. Vous pouvez également supprimer le tout et dans les parenthèses là, que tout dans votre module va être exporté

Autres conseils

Votre deuxième exemple est presque là, il suffit de retirer la () de côté Main. Voici votre liste d'exportation pour votre module, vous avez vide (rien en entre les parenthèses). À cause de cela, main ne se voit pas (parce qu'il est pas exportée).

Vous pouvez aussi simplement exporter principale:

module Main (main) where

« Est-ce une bonne pratique de tout ce que l'exportation? » Définitivement pas. Vous ne voulez pas que les détails de mise en œuvre comme des méthodes d'aide de fuite vers l'extérieur. Un autre exemple sont des constructeurs de valeur, parce qu'il n'y a aucun moyen d'effectuer des vérifications de santé mentale, les arguments par défaut etc pour eux. Pour y remédier, vous les utilisez à l'intérieur du module, et de fournir des fonctions d'initialisation pratique et sécuritaire pour l'extérieur.

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