il n'y a pas de reliure d'accompagnement - Qu'est-ce que cela signifie ?Comment ça fonctionne?

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

  •  12-12-2019
  •  | 
  •  

Question

Je pratique depuis LYAH.

Le fichier phoneBook.hs contient le code suivant :

annuaire ::[(Chaîne, Chaîne)]

En essayant de compiler le code mentionné ci-dessus, j'obtiens l'erreur suivante :

* Main>: charger "/home/optimight/phonebook.hs" [1 sur 1] Compilant Main (/home/optimight/phonebook.hs, interprété)

/home/optimight/phoneBook.hs:1:1 :La signature de type pour «répertoire» n'a pas de liaison qui accompagne, les modules chargés:aucun.

Question ajoutée après la réponse de brano et le commentaire ultérieur à cette réponse :Comment pouvons-nous implémenter la signature de type mentionnée ci-dessus ?

Si j'ajoute ceci :

tapez phoneBook = [(Chaîne, Chaîne)]

J'obtiens l'erreur suivante :

Prelude>: charger "/home/optimight/phonebook.hs" [1 sur 1] Compilant Main (/home/optimight/phonebook.hs, interprété)

/home/optimight/phoneBook.hs:2:6 :Tête de déclaration de type ou de classe mal formée :Le répertoire a échoué, modules chargés:aucun

Était-ce utile?

La solution

Vous devez fournir une implémentation pour phoneBook.

phoneBook :: [(String, String)] c'est juste la signature.

Autres conseils

Si vous souhaitez déclarer un type, il doit avoir une majuscule initiale, c'est-à-dire type PhoneBook = [(String, String)].

Si vous souhaitez déclarer une fonction, vous devez fournir soit uniquement sa définition (la liaison), soit à la fois sa définition et sa signature de type.L'effort minimal pour compiler votre code est :

phoneBook :: [(String, String)]
phoneBook = undefined

Ensuite, vous pouvez remplacer undefined avec n'importe quelle valeur de type [(String, String)] par exemple. [("Person","Number")].

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