Как выйти из основного состояния после того, как Prelude(Haskell) загрузил модуль?
В Haskell после использования Prelude для загрузки некоторых файлов
Prelude> :l xxxFileName
Стремление становится
*Main> xxxx
Я не знаю, откуда взялась функция "Main", так как я не определил ни одной функции под названием "Main". Это особый статус среды командной строки Haskell? Как выйти из контекста приглашения "*Main" и вернуться к "Prelude>"?
Благодарю.
1 ответ
Это соглашение GHCi. По умолчанию GHCi покажет название загруженного вами модуля. Звездочка (*
) указывает, что у вас есть доступ ко всем привязкам верхнего уровня (определениям, которые не находятся внутри других), а не к тем, которые экспортируются.
Если вы не указали имя модуля в файле, GHCi примет его имя Main
:
-- Example.hs
add x y = x + y
Prelude> :l Example.hs
*Main>
Однако, если вы укажете имя модуля, GHCi отобразит его вместо:
-- ProperModule.hs
module ProperModule where
add x y = x + y
Prelude> :l ProperModule.hs
*ProperModule>
Чтобы выгрузить любые дополнительные модули, используйте :m
, но имейте в виду, что вы не можете использовать функции из xxxFileName.hs
больше. Обратите внимание, что Prelude
всегда загружается, если вы не начали GHCi с -XNoImplicitPrelude
,