Jak uruchomić plik haskell w trybie interpretacji

Powiedziano mi, że możesz interpretować pliki Haskella (co, jak zakładam, oznacza, że będą działać jak Ruby/Python/Perl). Nie można znaleźć opcji wiersza poleceń w ghc, aby to zrobić. Zawsze chce skompilować mój plik. Przyjrzałam się też ghci, ale zawsze mnie to rzuca w przepaść.

W zasadzie chcę po prostu zrobić ghc -i MyFile.hs (gdzie-i jest zmyśloną flagą, którą udaję w trybie interpretacyjnym) i wykonać ją, aby uzyskać szybką opinię podczas wypróbowywania pomysłów i nauka.

Author: rene, 2011-12-30

4 answers

$ runhaskell MyFile.hs

Alternatywnie, runghc (to to samo). ghci MyFile.hs rozpocznie również interaktywną sesję REPL z załadowanym MyFile.hs, ale jeśli chcesz uruchomić główny program, to runhaskell jest dobrym rozwiązaniem.

To prawdopodobnie dobry pomysł, aby nabrać nawyku testowania części programu jako izolowanych jednostek w GHCi, zamiast uruchamiać całość za każdym razem, ale oczywiście dla krótszych skryptów jest najprostsze i najłatwiejsze po prostu uruchomić całość.

 100
Author: ehird,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-30 05:11:05

Możesz mieć taki skrypt:

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

Po utworzeniu pliku wykonywalnego (ie chmod +x haskell_script), można go uruchomić jak każdy inny skrypt powłoki.

 31
Author: David Miani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-30 05:15:31

Otwórz interpreter GHC, uruchamiając ghci w terminalu, a następnie Wczytaj wpisanie pliku :load example.hs. Więcej szczegółów w tym link .

 11
Author: Óscar López,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-30 05:09:11

Aby uruchomić kod zapisany w pliku, powiedzmy myfile.txt, zawierający proste linie kodu działające w interpreterze GHC, takie jak:

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

Możesz zrobić:

ghc -e ':script myfile.txt'

Edit

W systemie Windows wymagane są podwójne cudzysłowy:

ghc -e ":script myfile.txt"

Zamiast tego można również otworzyć GHCi i zrobić :script myfile.txt.

 1
Author: Stéphane Laurent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-24 16:15:35