Как запустить файл haskell в интерпретируемом режиме - PullRequest
65 голосов
/ 30 декабря 2011

Мне сказали, что вы можете интерпретировать файлы haskell (что, я предполагаю, означает, что они будут работать как Ruby / Python / Perl).Не могу найти параметр командной строки на GHC, чтобы сделать это, хотя.Он всегда хочет скомпилировать мой файл.Также взглянул на ghci, но он всегда выдает меня в ответ.

Я просто хочу сделать ghc -i MyFile.hs (где -i - выдуманный флаг, с которым я притворяюсь, коррелирует синтерпретируемый режим), и он должен выполняться так, чтобы я мог быстро получить обратную связь, пока я пробую идеи и учусь.

Ответы [ 4 ]

110 голосов
/ 30 декабря 2011
$ runhaskell MyFile.hs

В качестве альтернативы runghc (это одно и то же).ghci MyFile.hs также начнет интерактивный сеанс REPL с загруженным MyFile.hs, но если вы хотите запустить основную программу, то runhaskell - это путь.

Вероятно, это хорошая идея, чтобы войти впривычка тестировать части вашей программы как отдельные модули в GHCi вместо того, чтобы каждый раз запускать все это, но, очевидно, для более коротких сценариев проще всего и просто запустить все это.

35 голосов
/ 30 декабря 2011

У вас может быть такой скрипт:

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

После создания исполняемого файла (т. Е. chmod +x haskell_script) вы можете запустить его как любой другой сценарий оболочки.

11 голосов
/ 30 декабря 2011

Откройте интерпретатор GHC, запустив ghci в терминале, а затем загрузите файл, набрав :load example.hs. Подробнее в этой ссылке .

1 голос
/ 19 июля 2016

Чтобы запустить код, написанный в файле, скажем myfile.txt, содержащий простые строки кода, которые работают в интерпретаторе GHC, например:

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

, вы можете сделать:

ghc -e ':script myfile.txt'

Редактировать

В Windows требуются двойные кавычки:

ghc -e ":script myfile.txt"

Вместо этого можно также открыть GHCi и сделать :script myfile.txt.

...