我试图从一开始就学习Haskell,并想知道它使用的两个提示符(Haskell和Prelude)之间的区别到底是什么。这听起来可能是一个非常天真的问题,更不用说我试图在发布这个问题之前搜索答案,但没有找到一个(正确的)。提前感谢你。
b4qexyjb1#
好吧,如果我没理解错的话,你想知道这两者之间有没有区别
Prelude>
以及
ghci>
在从命令行调用GHCi之后,作为提示。如果是这种情况,那么除了偏好之外,没有什么真实的的区别。您可以使用以下命令将提示符更改为任何您想要的提示符:
:set prompt "aglebargle> "
你可以用任何你喜欢的东西替换arglebargle>。我认为Prelude>提示符的主要优点是当你导入模块时它会更新。Prelude是你拥有的唯一没有任何导入的模块,这就是为什么它是提示符。例如,如果你,比如说,做了import Control.Monad,你会得到Prelude Control.Monad>作为提示符。
arglebargle>
import Control.Monad
Prelude Control.Monad>
yjghlzjz2#
提示符指示正在处理的模块,由于Prelude是Haskell从GHC获得的标准模块,它显示为第一个提示符。然而从GHC 9.x版本开始,Prelude默认与所有模块一起导入(除非给出了相反的指令),所以从现在开始提示符只是“ghci〉"。
2条答案
按热度按时间b4qexyjb1#
好吧,如果我没理解错的话,你想知道这两者之间有没有区别
以及
在从命令行调用GHCi之后,作为提示。
如果是这种情况,那么除了偏好之外,没有什么真实的的区别。您可以使用以下命令将提示符更改为任何您想要的提示符:
你可以用任何你喜欢的东西替换
arglebargle>
。我认为
Prelude>
提示符的主要优点是当你导入模块时它会更新。Prelude是你拥有的唯一没有任何导入的模块,这就是为什么它是提示符。例如,如果你,比如说,做了import Control.Monad
,你会得到Prelude Control.Monad>
作为提示符。yjghlzjz2#
提示符指示正在处理的模块,由于Prelude是Haskell从GHC获得的标准模块,它显示为第一个提示符。然而从GHC 9.x版本开始,Prelude默认与所有模块一起导入(除非给出了相反的指令),所以从现在开始提示符只是“ghci〉"。