Haskell: importer une fonction ecrit dans un fichier.
Fermé
vladimir14k
Messages postés
34
Date d'inscription
mercredi 9 janvier 2019
Statut
Membre
Dernière intervention
14 août 2020
-
10 déc. 2019 à 16:23
vladimir14k Messages postés 34 Date d'inscription mercredi 9 janvier 2019 Statut Membre Dernière intervention 14 août 2020 - 12 déc. 2019 à 14:29
vladimir14k Messages postés 34 Date d'inscription mercredi 9 janvier 2019 Statut Membre Dernière intervention 14 août 2020 - 12 déc. 2019 à 14:29
2 réponses
yg_be
Messages postés
23337
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 novembre 2024
Ambassadeur
1 551
11 déc. 2019 à 11:54
11 déc. 2019 à 11:54
bonjour, les erreurs retournées sont-elles secrètes?
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 12 déc. 2019 à 11:15
Modifié le 12 déc. 2019 à 11:15
Salut vladimir14k,
Je ne connais pas trop bien Haskell, même si je m'intéresse à ce langage que j'aimerais apprendre (demain je m'y mets..., enfin un jour, heu, bon c'est dans ma TODO list pour quand j'aurai le temps :-P)... alors ce qui suit est sans doutes à prendre avec un grain de sel.
Je crois que tu devrais te renseigner sur les Modules en Haskell. D'après ma compréhension, la directive import ne sert pas à importer un fichier, mais à importer les entités exportées par un Module.
https://www.haskell.org/onlinereport/haskell2010/haskellch5.html
https://www.haskell.org/tutorial/modules.html
L'erreur en question semble directement provoquée par le fait que : "Module names are alphanumeric and must begin with an uppercase letter", ce qui ne correspond pas à ce qu'il y a à la suite de ton import (les guillemets, slashs, point et l'absence de majuscule initiale rendent la ligne syntaxiquement incorrecte).
Selon ma compréhension, ta directive d'import devrait être juste
Pour faire de ton programme un Module exportant la fonction que tu souhaites, vois la doc (en particulier "5.1 Module Structure" et "5.2 Export Lists".
Une fois que tu as un Module , tu peux placer le fichier qui le contient dans le même répertoire que le programme qui l'importe, afin que Haskell le trouve.
Si tu tiens à le mettre dans un autre répertoire, lis ceci pour plusieurs solutions permettant de passer l'information à Haskell sur les répertoires où peuvent se trouver les Modules auxquels un programme peut accéder :
https://stackoverflow.com/questions/5034685/what-is-the-haskell-syntax-to-import-modules-in-subdirectories
Ne m'étant intéressé à Haskell que de très loin, je suis peut-être à côté de la plaque (j'invite les personnes savantes sur le forum en Haskell à se manifester), mais si ce que je décris ci-dessus peut t'aider, tant mieux :-)
Dal
Je ne connais pas trop bien Haskell, même si je m'intéresse à ce langage que j'aimerais apprendre (demain je m'y mets..., enfin un jour, heu, bon c'est dans ma TODO list pour quand j'aurai le temps :-P)... alors ce qui suit est sans doutes à prendre avec un grain de sel.
Je crois que tu devrais te renseigner sur les Modules en Haskell. D'après ma compréhension, la directive import ne sert pas à importer un fichier, mais à importer les entités exportées par un Module.
https://www.haskell.org/onlinereport/haskell2010/haskellch5.html
https://www.haskell.org/tutorial/modules.html
L'erreur en question semble directement provoquée par le fait que : "Module names are alphanumeric and must begin with an uppercase letter", ce qui ne correspond pas à ce qu'il y a à la suite de ton import (les guillemets, slashs, point et l'absence de majuscule initiale rendent la ligne syntaxiquement incorrecte).
Selon ma compréhension, ta directive d'import devrait être juste
import Pgcd(dans sa forme la plus simple).
Pour faire de ton programme un Module exportant la fonction que tu souhaites, vois la doc (en particulier "5.1 Module Structure" et "5.2 Export Lists".
Une fois que tu as un Module , tu peux placer le fichier qui le contient dans le même répertoire que le programme qui l'importe, afin que Haskell le trouve.
Si tu tiens à le mettre dans un autre répertoire, lis ceci pour plusieurs solutions permettant de passer l'information à Haskell sur les répertoires où peuvent se trouver les Modules auxquels un programme peut accéder :
https://stackoverflow.com/questions/5034685/what-is-the-haskell-syntax-to-import-modules-in-subdirectories
Ne m'étant intéressé à Haskell que de très loin, je suis peut-être à côté de la plaque (j'invite les personnes savantes sur le forum en Haskell à se manifester), mais si ce que je décris ci-dessus peut t'aider, tant mieux :-)
Dal
vladimir14k
Messages postés
34
Date d'inscription
mercredi 9 janvier 2019
Statut
Membre
Dernière intervention
14 août 2020
12 déc. 2019 à 14:29
12 déc. 2019 à 14:29
MERCI BIEN POUR TON SOUCI POUR MOI. Je veux me mettre aux recherches. Merci encore
12 déc. 2019 à 05:05
parse error: ‘/home/gnu/ipf/pgcd.hs’
Version number or non-alphanumeric character in package name
|
1 | import "/home/gnu/ipf/pgcd.hs"
| ^^^^^^^^^^^^^^^^^^^^^^^
Failed, no modules loaded.
Prelude>