我是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>
根据这个网站,我必须将我的Haskell文件保存到当前目录或指定其他目录才能访问它们。这是我不知道该怎么做的。
我的问题:
- 如何设置当前目录
- 我如何让GHCi告诉我当前目录的路径是什么,这样我就可以在需要的时候检查它的设置
请解释从开始
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中的当前目录,然后运行上面的代码。
如何设置当前目录?
GHCi提供:cd <dir>
命令。使用:?
可以获得所有命令的列表。如果您省略了目录,您将再次切换到您的主页。
我如何让GHCi告诉我当前目录的路径是什么,这样我就可以在需要的时候检查它的设置?
有趣的是,GHCi没有为此提供命令,但您可以使用Window的cd
命令。为了执行外部命令,您需要使用:!
,例如:! cd
。
示例
ghci>:!cdC: \用户\泽塔ghci>:cd工作空间ghci>:cd stackoverflowghci>:!cdC: \Users\Zeta\workspace\stackoverflowghci>:cdghci>:!cdC: \用户\泽塔
答案是:cd
作为@Zeta但更进一步,为了寻找像我这样的人
- 路径:
:cd
- 带有命令的路径:
:! cd
就像vim!
一样是用户的操作系统控制台 :cd <DIR>
几乎等同于:! cd <DIR>
- 有另一种方式
:show paths
显示某些路径,并且有当前的dicactory
PS>搜索了一些类似的conf.d(~/.ghci/ghci.conf(,但失败了。
在使用GHCi-8.10.4的Windows 10中对我有效的是
:cd c:\WorkFinanceUT 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。快乐