如何在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
注意 ,模块名称和文件名称必须相同。 否则它不能编译。 就像是
找不到模块'…'
会发生。