Avec le nom du fichier cat.cs
, sur linux je reçois
$ ghc cat.cs
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:cat.cs: file format not recognized; treating as linker script
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:cat.cs:1: syntax error
Alors en effet, puisque GHC ne sait pas comment gérer .cs
fichiers, il les transmet comme c'est à gcc pour la liaison, gcc ne sait pas non plus, donc retombe à le considérer comme un script de liaison, qui bien sûr ne tourne pas si bien.
Mais vous pouvez dire GHC qu'il doit traiter tout fichier que vous donnez comme, par exemple un fichier .hs
,
$ ghc -x hs cat.cs
[1 of 1] Compiling Main (cat.cs, cat.o)
Linking cat ...
runghc
d'autre part ne se soucie pas ce que le fichier est nommé, il tente de interpréter le fichier comme une source Haskell normale, sauf s'il a l'extension .lhs
, puis il essaie de l'interpréter comme étant Haskell.
Est-ce 'cat.hs' ou' cat.cs'? Le nommer comme 'cat.hs' et utiliser' ghc cat.hs -o cat' fonctionne pour moi (sous Linux). – kennytm
cat.cs est mon mauvais nom. Renommez cat.hs, puis travaille pour moi. Merci. – sanemat