A制作了一个模块Timeit。我无法将其导入 GHCi。 模块:
module Timeit (timeit, timeCatch) where
import Data.Time.Clock
timeit::IO ()->IO (Float)
timeit io=do
(time,())<-timeCatch io
return time
timeCatch::IO (a)->IO (Float,a)
timeCatch io=do
start <-getCurrentTime
result <-io
end <-getCurrentTime
return $! (realToFrac (diffUTCTime end start), result)
test=do
putStrLn "What is your name?"
name <- getLine
putStrLn $ "Your name is "++name++"."
GHCi:
theking@ChrisLaptopUbuntu1304:~/Desktop/Haskell$ cd ~/Desktop/Haskell/; ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> import Timeit
<no location info>:
Could not find module `Timeit'
Perhaps you meant Time (needs flag -package haskell98-2.0.0.2)
我可以将其导入到我的其他程序中,但不能导入到 GHCi 中。
注意:我是一个 Haskell 菜鸟吗?
最佳答案
为了让 GHCi 导入模块,您必须确保一些事情是正确的。
首先,你们在同一个目录吗?默认情况下,GHCi 只会在当前目录中搜索模块。
第二,你添加了模块头吗?您的代码应以
开头 module Timeit where
...
第三,您的文件实际上必须命名为 Timeit.hs
(使用该大小写)。
默认情况下,Haskell 会插入 module Main where
,如果您的模块不是 main,这就会出现问题。
最后但并非最不重要的一点是,GHCi 似乎要求您至少使用一次 :l Timeit
。我不确定这是为什么,但是一旦加载,您可以使用 :m
将其从范围中删除,然后将其导入您的心中内容。
如果您已完成这些操作,则应该可以正常导入。
关于haskell - GHCi 没有看到我的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246000/