这是: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
答案 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.