我已经开始自学 Haskell,为此我安装了适用于 Windows的 Haskell 平台。我现在正在使用WinGHCi
。我了解到它具有:cd
用于更改目录的命令。但问题是,我怎么知道我目前在哪个目录?首先不知道为什么我要更改目录。我搜索了很多,但找不到答案。
请告诉我是否有办法知道当前工作目录。最好我想配置命令提示符本身以显示当前目录,就像 Linux 的控制台一样。
按照@Daniel 的建议,我做了这些:
- 由于我在 Windows 7 上工作,因此没有
.ghci
文件(我认为它适用于类 Unix 操作系统),所以我在文件夹中创建了一个文件,ghci.conf
如此C:\Users\Apelles\AppData\Roaming\ghc
处所示。 - 将 Daniel 回答中的脚本复制粘贴到
ghci.conf
. - 然后我开始
ghci.exe
了类似控制台的窗口。我注意到它加载的模块比以前通常加载的模块多。这是快照:
如您所见,它加载了更多模块,最后一行说,
无法解析提示字符串。使用 Haskell 语法。
这是什么意思?哪一行导致问题(来自以下脚本)?
let cur fill = do { cwd <- System.Directory.getCurrentDirectory; return (":set prompt \"" ++ cwd ++ fill ++ " \""); }
:def doprompt (\_ -> cur ">")
:def mycd (\dir -> System.Directory.setCurrentDirectory dir >> cur ">")
:doprompt
此外,如果我将ghci.conf
文件重命名为某个随机名称,然后 start ghci.exe
,它会加载这些模块:
正如我之前所说,它加载的模块数量更少,这意味着使用ghci.confghci.exe
可以成功执行某些操作,但有时会失败。如何解决?