在Haskell中,使用Prelude加载一些文件后
Prelude> :l xxxFileName
提示音
*Main> xxxx
我不知道"Main"函数从何而来,因为我没有定义任何名为"Main"的函数。这是 Haskell 命令行环境的特殊状态吗?如何退出"*Main"提示上下文并返回到"Prelude>"?
谢谢。
这是 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
始终加载,除非您已使用 -XNoImplicitPrelude
启动 GHCi。