-1

为了证明我的问题,我创建了一个这样的测试项目->

在此处输入图像描述

目录“Data”只有两个模块,分别是“Test3.hs”和“Test4.hs”。它们是用于测试目的的空模块。(实现:“模块 Data.Test3 where”)

"Test1.hs" 像这样导入所有模块 ->

在此处输入图像描述

这会导致错误->

在此处输入图像描述

我正在使用 WinGHCi 导入模块,它会自动将目录更改为“cd: ~\.hs”。

我还尝试使用 GHCi 和手动更改目录来导入模块。但最终得到与上述相同的结果。

所以我得出的结论是,没有办法从同一个目录中导入你自己的模块,你必须始终只为此目的创建子目录。

那正确吗?

4

1 回答 1

3

你需要决定你的根目录在哪里,从那个目录运行 GHCi,然后一致地命名你所有的模块相对于同一个目录。

您需要在模块声明 ( module Foo where...)导入语句 ( import Foo) 中一致地命名您的模块。

所以你需要

module Test.Test1 where

import Test.Data.Test3
import Test.Data.Test4
import Test.Test2

从内部运行 GHCiTest并删除所有Test前缀。但是你不能在某些而不是其他的上加上前缀。你必须在任何地方保持一致。每个模块名称基本上是从当前目录到源文件所在的文件路径。

于 2018-09-06T12:02:57.637 回答