2013-01-15 6 views
0

Je viens de commencé à utiliser haskell .. J'ai essayé d'exécuter un script exemple:Impossible de charger des modules

import Data.List 
module main where 

mylength = foldr (const (+1)) 0 
main = print (mylength "haskell") 

je reçois une simple erreur « modules chargés, aucun. » Je n'ai aucune idée de pourquoi cela se passe. J'utilise GHCi sous win7 32bit (si cela est important). Est-ce que j'ai râté quelque chose? l'exemple n'inclut même pas le "module principal où" mais même sans cela il échoue pour fonctionner.

Répondre

3

La ligne module passe toujours avant import s. Et le nom du module devrait commencer par une lettre majuscule.

module Main where 
import Data.List 

mylength = foldr (const (+1)) 0 
main = print (mylength "haskell") 

Si cela ne fonctionne pas pour vous, s'il vous plaît nous dire

  • le message d'erreur complet que vous obtenez; et
  • version du compilateur que vous utilisez
+0

ohhh merci, j'ai essayé à l'origine, mais j'avais des espaces avant le mylength et le principal je suppose que cela a causé un problème aussi. – ace007

+0

Oui, l'indentation est importante chez Haskell. – dave4420

0

Vous n'avez pas besoin module ligne là. Lorsque vous le mettez, cependant, il doit aller avant toutes les instructions d'importation.

module main where -- Optional, in the case of main. 

import Data.List 

myLength :: [a] -> Int 
myLength = foldr (const (+1)) 0 

main = print (mylength "haskell") 
Questions connexes