runghc/runhaskell позволяет запускать программы на Haskell с помощью интерпретатора, не компилируя их предварительно.
4.1. Использование
Командная строка runghc выглядит так:
runghc [runghc flags] [GHC flags] module [program args]
Все флаги, не распознанные runghc, автоматически передаются GHC. Если флаг распознаётся и runghc, и GHC, но вы хотите передать его GHC, поместите его после разделителя --. Флаги после разделителя рассматриваются только как флаги GHC. Кроме того, можно использовать параметр runghc --ghc-arg=<arg>, чтобы передать любой флаг или аргумент непосредственно GHC.
module может быть именем исходного файла Haskell с расширением или без него. Если по какой-либо причине имя файла начинается с -, можно использовать второй --, чтобы указать конец флагов. Всё, что следует за вторым --, будет считаться файлом программы или именем модуля, за которым следуют аргументы. Например:
runghc -- -- -hello.hs
4.2. Флаги runghc
runghc принимает следующие флаги:
-
-f /path/to/ghc: указывает runghc путь к исполняемому файлу GHC, который следует использовать для запуска программы. По умолчанию runghc ищет GHC в каталогах, перечисленных в системном пути поиска. -
--ghc-arg=<arg>: передаёт параметр или аргумент GHC -
--help: выводит информацию об использовании. -
--version: выводит информацию о версии.
4.3. Флаги GHC
Как упоминалось ранее, при необходимости используйте -- или --ghc-arg=<arg>, чтобы однозначно определить флаги GHC. Например, -f распознаётся runghc, поэтому, чтобы передать -fliberate-case в GHC, используйте один из следующих вариантов:
runghc -- -fliberate-caserunghc --ghc-arg=-fliberate-case
Обратите внимание, что аргументы, не являющиеся флагами, никогда не передаются GHC. Неиспользуемый аргумент, не являющийся флагом, будет считаться именем запускаемой программы. Если для флага GHC требуется аргумент, используйте --ghc-arg=<arg>, чтобы передать этот аргумент GHC. Например, если вы хотите передать -package foo в GHC, используйте один из следующих вариантов:
runghc -package --ghc-arg=foo Main.hsrunghc --ghc-arg=-package --ghc-arg=foo Main.hs