使用堆栈在ghci中加载新包

Sib*_*ibi 11 haskell haskell-stack

有没有办法在GHCI中使用Stack加载包并玩它?

因此,当ghci加载时,我们可以导入模块并查看它的类型签名等.

Sib*_*ibi 20

对于Stackage中的包,

$ stack ghci --package unix-time
Run Code Online (Sandbox Code Playgroud)

这将为您提供unix-time加载包的repl :

Run from outside a project, using implicit global project config
Using resolver: lts-6.14 from implicit global project's config file: /home/sibi/.stack/global-project/stack.yaml
GHCi, version 7.10.3: http://www.haskell.org/ghc/  :? for help
?> import Data.UnixTime
?> :t getUnixTime
getUnixTime :: IO UnixTime
Run Code Online (Sandbox Code Playgroud)

对于多个包:

$ stack ghci --package unix-time --package download
Run from outside a project, using implicit global project config
Using resolver: lts-6.14 from implicit global project's config file: /home/sibi/.stack/global-project/stack.yaml
tagsoup-0.13.10: using precompiled package
xml-1.3.14: using precompiled package
time-locale-compat-0.1.1.3: using precompiled package
feed-0.3.11.1: download
feed-0.3.11.1: configure
feed-0.3.11.1: build
feed-0.3.11.1: copy/register
download-0.3.2.4: download
download-0.3.2.4: configure
download-0.3.2.4: build
download-0.3.2.4: copy/register
Completed 5 action(s).
Configuring GHCi with the following packages:
GHCi, version 7.10.3: http://www.haskell.org/ghc/  :? for help
Ok, modules loaded: none.
?> import Network.Download
?>
Run Code Online (Sandbox Code Playgroud)

  • @Redu你是对的,我已经更新了答案.这只适用于包已经注册了包数据库的情况,在这种情况下,`stack ghci`也可以. (2认同)
  • 此外,您可以使用 `:set -package Pretty-simple` 在 ghci 堆栈内动态加载包。 (2认同)