GHCI的:add命令可以接受相对于某个主目录的路径吗?

时间:2017-02-18 02:26:22

标签: haskell ghci

这是:add的GHC手册文档:

  

⟨module⟩

     

将⟨module⟩(s)添加到当前目标集,然后执行重新加载。通常,如果可用,将加载模块的预编译代码,否则模块将被编译为字节代码。使用*前缀强制将模块加载为字节码。

我可以从实验中看出:add实际上并不是模块的名称;它也可以是文件路径。如果它不是绝对路径,它似乎相对于从中启动REPL的当前目录进行解析。

是否可以引用$HOME/.ghci/imports.hs与某个主目录相关的路径?

例如,我想在我的全球GHCI配置中加入:add $HOME/.ghc/imports.hs 。 (有关此背后的动机,请参阅Can a GHCI config file use CPP macros?

我已尝试过明显的

<no location info>: error: can't find file: $HOME/.ghc/imports.hs
Failed, modules loaded: none.

但它不起作用:

jit

1 个答案:

答案 0 :(得分:2)

使用~代替$HOME

λ :add ~/Documents/Code/Haskell/Ackermann
[1 of 1] Compiling Ackermann        ( /Users/rampion/Documents/Code/Haskell/Ackermann.hs, interpreted )
Ok, modules loaded: Ackermann.