如何在Haskell中导入.hs文件

我做了一个叫time.hs的文件。 它包含一个测量另一个函数执行时间的函数。

有没有办法将time.hs文件导入到另一个Haskell脚本?

我想要的东西是:

 module Main where import C:\Haskell\time.hs main = do putStrLn "Starting..." time $ print answer putStrLn "Done." 

在'time.hs'中定义的时间为:

 module time where Import <necessary modules> time a = do start <- getCPUTime v <- a end <- getCPUTime let diff = (fromIntegral (end - start)) / (10^12) printf "Computation time: %0.3f sec\n" (diff :: Double) return v 

我不知道如何导入或加载单独的.hs文件。 我需要在导入之前将time.hs文件编译成模块吗?

Time.hs

 module Time where ... 

script.hs

 import Time ... 

命令行:

 ghc --make script.hs 

如果模块time.hs和你的“main”模块位于同一个目录下,你可以简单地键入:

 import time 

可以使用分层结构,以便您可以编写import utils.time 。 据我所知,你想这样做的方式是行不通的。

有关模块的更多信息,请参阅此处了解您是Haskell,创build自己的模块 。

假设我在同一个目录下有两个文件:ModuleA.hs和ModuleB.hs。

ModuleA.hs:

 Module ModuleA where ... 

ModuleB.hs:

 Module ModuleB where import ModuleA ... 

我可以做这个:

  ghc -I. --make ModuleB.hs 

注意 ,模块名称和文件名称必须相同。 否则它不能编译。 就像是

找不到模块'…'

会发生。