21

这个问题出现在#haskell irc 聊天中:

如何在不导入前奏的情况下启动 ghci?

可能的答案似乎很明显:

ghci -XNoImplicitPrelude, 或加载一个文件import Prelude ()

后者似乎有效,而前者奇怪的是没有。但是,import Prelude ()从 Prelude 导入声明的实例,对吗?有没有更好的方法来创建一个完全不加载 Prelude 的 ghci 会话?

4

2 回答 2

17
% ghci                    
GHCi, version 7.0.4: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> :m -Prelude 
> :i map

Top level: Not in scope: `map'
> :i Eq

Top level: Not in scope: data constructor `Eq'

但是,我不确定这些实例以及 ghci 如何处理它们。

是否有您担心的特定实例?

于 2011-10-11T21:18:44.647 回答
3

接受的答案似乎不再起作用。这在 ghci 8.0.2 中确实有效。

Prelude> :set -XNoImplicitPrelude
Prelude> :m -Prelude
> 
于 2017-11-14T12:57:46.440 回答