emacs 中的 Haskell 加载模块问题

标签 haskell emacs module

我在 emacs 中有 2 个 Haskell 模块:Mod1.hs 和 Mod2.hs

Mod1.hs:

module Mod1 where
...

在第二个模块中,我尝试导入第一个模块:

import Mod1

但是报错:

 Could not find module `Mod1':
      Use -v to see a list of the files searched for.
Failed, modules loaded: none.

在 emacs 中,我使用标准的 Haskell 模式。同一目录下的 Mod1.hs 和 Mod2.hs 文件。

我该如何解决?

谢谢。

最佳答案

您需要设置在 Emacs 中运行的解释器的搜索路径,以将目录包含在您的文件中。在 GHCi 解释器中执行:

Prelude> :cd /home/you/projects/yourproject

当然,将 /home/you/projects/yourproject 替换为您的 .hs 文件的路径。 (在解释器中执行 :!pwd 以打印当前路径。)然后您应该能够执行:

Prelude> :l Mod2

(或 Mod2.hs 缓冲区中的 C-c C-l。)参见 the GHC user guide了解详情。

关于emacs 中的 Haskell 加载模块问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6581176/

相关文章:

scala - 将这个 monadic 计数器从 Haskell 转换为 Scala

emacs 上的 C++ 自动 header

emacs - 打开 dired 并选择与前一个缓冲区关联的文件?

emacs - 限制 ENSIME 服务器缓冲区的长度;该缓冲区的钩子(Hook)

android-studio - 构建 gradle 失败但在另一个项目上

ruby-on-rails-3 - 'C : Carriage return character detected' for 'module WareHouse' in Rubocop

haskell - 在 Haskell 之后学习什么语言?

haskell - 加密和 ByteString 边界

powershell - 有没有办法为运行时模块或脚本 block 编写帮助文本?

haskell - 以纯函数式语言保持状态