我是Haskell的新手并使用Windows PC。我正在尝试设置GHCi接口,以便在使用GHCi执行代码之前,我可以在文本编辑器中编写代码。
目前,我的GHCi读取
$ ghci GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude>
根据这个site,我必须将我的Haskell文件保存到当前目录或指定其他目录才能访问它们。这是我不知道该怎么办。
我的问题:
请从行
开始解释Prelude>
如上所述,以便我可以跟进。
注意:
给出的示例Haskell代码是
文件名:Main.hs
main = print(fac(20))
fac 0 = 1
fac n = n * fac(n-1)
和GHCi
prelude> :load Main
Compiling Main ( Main.hs, interpreted )
Ok, modules loaded: Main.
*Main> fac 17
355687428096000
所以我想将Main.hs保存到一个目录,将其指定为GHCi中的当前目录,然后运行上面的代码。
答案 0 :(得分:20)
如何设置当前目录?
GHCi提供:cd <dir>
命令。您可以使用:?
获取所有命令的列表。如果省略该目录,您将再次转到家中。
如何让GHCi告诉我当前目录的路径是什么,以便我可以查看我想要的内容?
有趣的是,GHCi没有为此提供命令,但您可以使用Window的cd
命令。要执行外部命令,您需要使用:!
,例如:! cd
。
ghci> :! cd C:\Users\Zeta ghci> :cd workspace ghci> :cd stackoverflow ghci> :! cd C:\Users\Zeta\workspace\stackoverflow ghci> :cd ghci> :!cd C:\Users\Zeta
答案 1 :(得分:1)
在带有 GHCi-8.10.4 的 Windows 10 中对我有用的是
:cd c:\\Work\Finance\UT Trial Balance
和
:cd ..
效果也很好。人们假设 Haskell 字符串 [Char] 但不是,文字字符串。这些空间甚至不必转义。 Windows 反斜杠也适用。啊。 你还是得用
:! cd
看看你在哪里。我假设,现在我可以在我的工作目录中:l
我的代码。
如果你和 :! bash -i
一起出去,它是一个叉子,是分开的。你可以全部 cd 但它不会改变 GHCi 工作目录。
:! pwd
在我的 GHCi 中有效。
现在你在安装 Haskell-dev 时会得到很多 Linux 工具。好可爱。去年我摆脱了 Cygwin 并在 Windows 中安装了 Ubuntu 20.04.1 LTS,这是 Windows 上真正的 Linux,但命令在 Windows 命令行中不可用。现在,有了 Haskell-dev,我可以免费获得随处可见的 Linux。喜悦。
答案 2 :(得分:0)
正如@Zeta所写,答案是:cd
但还有更多,用于搜索像我这样的人
:cd
:! cd
的路径,就像vim !
属于用户的操作系统控制台一样:cd <DIR>
几乎等于:! cd <DIR>
:show paths
显示了一些路径,并且存在当前的分歧PS>搜索了一些conf.d(〜/ .ghci / ghci.conf),但失败了。