Haskell :может загружать только один файл за раз с помощью :load

предположим, что у меня есть два модуля NecessaryModule1 и NecessaryModule2 (, как указано в сообщении Haskell :, загружающие ВСЕ файлы в текущем пути к каталогу . Затем я заметил как в WinGHCi, так и в GHCi, что если я делаю :

> :load NecessaryModule1
[1 of 1] Compiling NecessaryModule1 ( NecessaryModule1.hs, interpreted )
Ok, modules loaded: NecessaryModule1.
> addNumber1 2 3
5
> :load NecessaryModule2
[1 of 1] Compiling NecessaryModule2 ( NecessaryModule2.hs, interpreted )
Ok, modules loaded: NecessaryModule2.
> addNumber1 2 3

:1:1: Not in scope: `addNumber1'

, то есть загрузка NecessaryModule2 удаляет все функции из NecessaryModule1.

Значит ли это, что единственный способ одновременно загрузить NecessaryModule1 и NecessaryModule2 — это использовать третий файл (, который импортирует и NecessaryModule1, и NecessaryModule2 ), а затем загрузить этот третий файл? (напр. см. test.hs в Haskell :загрузка ВСЕХ файлов в текущем пути к каталогу)Спасибо.

---------------------------------------------------------------------------------------

[ОТВЕТ ГИКозавру]

Привет, если я сделал :load NecessaryModule1, а затем хочу загрузить модуль в MyMod.hs :

--MyMod.hs
module MyMod where
import Data.List

f x = sort x

, то как мне это сделать? В Haskell :модуль выгрузки в WinGHCi Риккардо объясняет, что :moduleпредполагает, что модули уже были загружены. Значит ли это, что единственный способ добиться загрузки нескольких пользовательских модулей — загрузить их одним вызовом функции :load? Спасибо.

10
задан Community 23 May 2017 в 11:46
поделиться