Haskell:文件名和路径与模块名不匹配

Haskell:文件名和路径与模块名不匹配,haskell,module,Haskell,Module,我正在使用适用于OS X的Haskell应用程序,并创建了一个Haskell项目,当我在项目中创建另一个文件时,Haskell告诉我文件名和路径与模块名不匹配!我是哈斯克尔的新手,这是什么意思 它还告诉我,它希望文件名作为模块名 谢谢 错误消息告诉您模块名和文件名应该相同 例如:如果文件名为NewModule.hs,则模块名应为NewModule。 例如 因此,您只需使用module指令。那么,您的模块的模块名称是什么(即在其源代码中module后面的单词)?文件名是什么?请确保您复制并粘贴了这

我正在使用适用于OS X的Haskell应用程序,并创建了一个Haskell项目,当我在项目中创建另一个文件时,Haskell告诉我文件名和路径与模块名不匹配!我是哈斯克尔的新手,这是什么意思

它还告诉我,它希望文件名作为模块名


谢谢

错误消息告诉您模块名和文件名应该相同

例如:如果文件名为
NewModule.hs
,则模块名应为
NewModule
。 例如


因此,您只需使用
module
指令。

那么,您的模块的模块名称是什么(即在其源代码中
module
后面的单词)?文件名是什么?请确保您复制并粘贴了这些答案,因为这里的大小写问题很重要。目前,.hs文件的名称只是NewModule.hs,因为我只是在测试。该文件完全为空。该文件应至少包含行
module NewModule“Haskell OS X应用程序”没有任何意义。你是在说GHC、GHCi、阴谋集团、stack还是什么奇怪的东西?没关系,我是在Michael的帮助下完成的。Mac appstore上有一个名为“Haskell”的应用程序,我使用它。这只是一个Haskell IDE。很抱歉说得含糊不清。这不起作用,但我使用了“模块newmodulewhere”,它起作用了。“where”部分是什么意思?@manwhoikesspritekit
where
引入了一个声明块。例如,当你定义一个函数时,你可以说:
fxy=。。。其中a=…
因此
中a=…
定义了一些可以在函数体中使用的名称。整个模块可以被看作是这样一个块。”特别是,模块名和文件名之间没有联系,可以想象,一个文件中可能存在多个模块(一个模块甚至可能跨越多个文件)当然,一个特定的实现很可能会采用使模块和文件之间的连接更加严格的约定。“这来自GHC的文档,在这种情况下,如果文件名与模块名不同,我不知道当我从文件Y.hs导入模块X时,GHC将如何查找要导入的文件。
-- NewModule.hs:

module NewModule where

-- you may define functions here...