如何在Haskell中导入.hs文件

Jon*_*FTW 57 syntax haskell module

我做了一个名为的文件time.hs.它包含一个函数,用于测量另一个函数的执行时间.

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

我想要的东西:

module Main where
import C:\Haskell\time.hs

main = do
    putStrLn "Starting..."
    time $ print answer
    putStrLn "Done."
Run Code Online (Sandbox Code Playgroud)

时间在'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
Run Code Online (Sandbox Code Playgroud)

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

yai*_*chu 57

Time.hs:

module Time where
...
Run Code Online (Sandbox Code Playgroud)

script.hs:

import Time
...
Run Code Online (Sandbox Code Playgroud)

命令行:

ghc --make script.hs
Run Code Online (Sandbox Code Playgroud)


Chr*_*ian 16

如果模块time.hs与"main"模块位于同一目录中,则只需键入:

import Time
Run Code Online (Sandbox Code Playgroud)

可以使用分层结构,以便您可以编写import Utils.Time.据我所知,你想要的方式是行不通的.

有关模块的更多信息,请参阅此处了解Haskell,制作我们自己的模块.

  • 这是一种类型,导入`时间'是正确的,我猜. (2认同)