Paul's answer очень подходит, но я просто хотел бы расширить идею передачи пути непосредственно к компилятору для быстрого и простого решения, в основном для запуска сценариев с runhaskell
или runghc
.
Все, что вам нужно сделать, это передать флаг -i
компилятору с разделенным двоеточиями списком каталогов. Затем компилятор проверит эти каталоги на наличие исходных файлов импортированных модулей.
Так, например, если у вас есть структура каталогов, например:
home/
|-- user/
|-- haskell/
|-- Module1.hs
|-- foo/
|-- Module2.hs
И вы хотели бы, чтобы Module2
мог импортировать Module1
, затем внутри Module2.hs
добавьте оператор импорта как обычно:
import Module1
Затем, когда вы выполните Module2.hs
, используя runhaskell
, вы запустите его так:
$ cd /home/user/haskell/foo
$ runhaskell -i/home/user/haskell Module2.hs
Ссылка: http://www.haskell.org/ghc/docs/7.0.1/html/users_guide/separate-compilation.html#search-path