簡體   English   中英

如果模塊位於同一目錄中,是否無法從其他模塊導入模塊? (哈斯克爾)

[英]Is it not possible to import modules from another module if they are in the same dir? (Haskell)

為了演示我的問題,我創建了一個像這樣的測試項目->

在此處輸入圖片說明

目錄“數據”只有兩個模塊,即“ Test3.hs”和“ Test4.hs”。 它們是用於測試目的的空模塊。 (實現:“模塊Data.Test3其中”)

“ Test1.hs”像這樣導入所有模塊->

在此處輸入圖片說明

導致錯誤->

在此處輸入圖片說明

我正在使用WinGHCi導入模塊,這會自動將目錄更改為“ cd:〜\\ .hs”。

我還嘗試通過使用GHCi和手動更改目錄來導入模塊。 但最終得到與上述相同的結果。

因此,我得出的結論是,無法從同一目錄導入自己的模塊,並且您必須始終僅為此目的創建子目錄。

那正確嗎?

您需要確定根目錄在哪里,從該目錄運行GHCi,然后一致地命名相對於同一目錄的所有模塊。

您需要在模塊聲明( module Foo where...導入語句( import Foo )中一致地命名模塊。

因此,你需要之一

module Test.Test1 where

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

Test內部運行GHCi並刪除所有Test前綴。 但是您不能在某些名稱上加上前綴,而在其他名稱上則不能。 您必須在所有地方保持一致。 每個模塊名稱基本上都是從當前目錄到源文件所在位置的文件路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM