gpt4 book ai didi

haskell - GHCI 没有看到我的模块

转载 作者:行者123 更新时间:2023-12-04 04:33:00 25 4
gpt4 key购买 nike

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 noob吗?

最佳答案

为了让 GHCi 导入一个模块,你必须确保一些事情是真实的。

首先,你在同一个目录吗?默认情况下,GHCi 只会在当前目录中搜索模块。

其次,你添加了模块头吗?您的代码应以

 module Timeit where
...

第三,您的文件必须实际命名为 Timeit.hs (用那个大写字母)。
默认情况下,Haskell 插入 module Main where ,如果您的模块不是主模块,这是一个问题。

最后但同样重要的是,GHCi 似乎要求您使用 :l Timeit至少一次。我不确定这是为什么,但是一旦加载,您可以使用 :m 将其从范围中删除然后将其导入您的心中。

如果你已经做了这些事情,它应该导入就好了。

关于haskell - GHCI 没有看到我的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com