如何在GHCi中设置当前目录



我是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文件保存到当前目录或指定其他目录才能访问它们。这是我不知道该怎么做的。

我的问题:

  1. 如何设置当前目录
  2. 我如何让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。快乐

最新更新