Как выйти из основного состояния после того, как 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,

Другие вопросы по тегам