71 votes

Comment exécuter un fichier Haskell en mode interprété ?

On m'a dit que vous pouviez interpréter les fichiers Haskell (ce qui signifie, je suppose, qu'ils fonctionneront comme Ruby/Python/Perl). Je n'arrive pas à trouver l'option de ligne de commande sur GHC pour le faire, cependant. Il veut toujours compiler mon fichier. J'ai également jeté un coup d'œil à GHCi, mais il me jette toujours dans un repl.

Je veux juste faire ghc -i MyFile.hs (où -i est un drapeau inventé qui, je le prétends, correspond au mode interprété) et le faire exécuter afin d'obtenir un retour d'information rapide pendant que j'essaie des idées et que j'apprends.

116voto

ehird Points 30215
$ runhaskell MyFile.hs

Alternativement, runghc (c'est la même chose). ghci MyFile.hs lancera également une session REPL interactive avec MyFile.hs chargé, mais si vous voulez exécuter un programme principal, alors runhaskell est la voie à suivre.

C'est probablement une bonne idée de prendre l'habitude de tester des parties de votre programme en tant qu'unités isolées dans GHCi plutôt que d'exécuter le tout à chaque fois, mais évidemment pour les scripts plus courts, il est plus simple et plus facile de simplement exécuter le tout.

37voto

David Miani Points 10548

Vous pouvez avoir un script comme ceci :

#!/usr/bin/env runhaskell
main = putStrLn "hello world"

Après avoir rendu le fichier exécutable (c'est-à-dire chmod +x haskell_script ), vous pouvez l'exécuter comme n'importe quel autre shell script.

11voto

Óscar López Points 97105

Ouvrez l'interpréteur GHC en exécutant ghci dans un terminal, puis chargez un fichier en tapant :load example.hs . Plus de détails dans ce enlace .

1voto

Stéphane Laurent Points 1533

Pour exécuter le code écrit dans un fichier, dites myfile.txt contenant des lignes de code simples qui fonctionnent dans l'interpréteur GHC, comme :

let a = 0 in a:[1,2]
let x = [1,2] in x ++ [3,4]

vous pouvez faire :

ghc -e ':script myfile.txt'

Editar

Sous Windows, les guillemets doubles sont nécessaires :

ghc -e ":script myfile.txt"

Au lieu de cela, on peut aussi ouvrir GHCi et faire :script myfile.txt .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X