为什么 ghci 找不到我要编译的 hs 文件?

问题描述

我是第一次学习 Haskell,我不明白为什么 ghci 找不到我要编译的文件。特别是因为,我保存了文件。这是我的文件

import System.IO


trueAndFalse = True && False 

在这是我在编译器中运行的,


<no location info>: error: can't find file: tut-1.hs
Failed,no modules loaded. 

解决方法

“失败,没有加载模块。”让我觉得你在谈论ghci。如果是这样,您可以使用 :show paths 找出 ghci 在哪里寻找文件。这是我尝试时的样子:

> :show paths
current working directory: 
  /home/<my username>
module import search paths:
  .

模块导入搜索路径会告诉您它在哪些目录中查找。该列表中单独的 . 指的是当前工作目录。因此,对我而言,如果我希望可以从该 ghci 实例轻松访问文件,则必须将其保存在 /home/<my username> 中。

当然,有多种方法可以更改所有这些部分——哪些路径在导入搜索路径中,哪个目录是当前工作目录,等等——但这应该能让你进行简单的使用。>

顺便提一下术语说明:GHC 工具套件带有编译器和解释器。编译器的可执行文件是ghc,解释器的可执行文件是ghci。了解这种区别可能会帮助您避免在以后的对话中混淆!