命令(在GHCi中)
:load abc
加载文件abc中的函数(必须存在于当前目录路径中)。如何加载当前目录路径中的所有文件?感谢
[回复以下帖子]
嗨罗茨科夫,谢谢我尝试了你的建议,但是我无法让它发挥作用,所以我想我一定是误会了。
我创建了3个文件test.hs,test1.hs和test2.hs,如下所示:
- >
--test.hs
import NecessaryModule
- >
--test1.hs
module NecessaryModule where
addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b
- >
--test2.hs
module NecessaryModule where
addNumber2 :: Int -> Int -> Int
addNumber2 a b = a + b
然后当我做的时候:
:load test
我收到了错误消息:
test.hs:1:8:
Could not find module `NecessaryModule':
Use -v to see a list of the files searched for.
由于
感谢。这就是我为了让它发挥作用(遵循Rotskoff的建议):
- >
--test.hs
import NecessaryModule1
import NecessaryModule2
- >
--NecessaryModule1.hs
addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b
- >
--NecessaryModule2.hs
addNumber2 :: Int -> Int -> Int
addNumber2 a b = a + b
答案 0 :(得分:5)
大概你的意思是Haskell源文件,因为你不能在GHCi中使用:load
命令来做任何事情。
在您加载的源文件的顶部,包含以下行:
import NecessaryModule
对于每个源文件,请确保命名模块,例如
module NecessaryModule where
应该出现。 GHCi将自动链接所有文件。
如果您尝试导入数据,请查看文档中的System.Directory
。
答案 1 :(得分:2)
如果文件名和模块名称相同,那就更好了:
➤ mv test1.hs NecessaryModule.hs
➤ ghci
GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> :load test
[1 of 2] Compiling NecessaryModule ( NecessaryModule.hs, interpreted )
[2 of 2] Compiling Main ( test.hs, interpreted )
Ok, modules loaded: NecessaryModule, Main.
自:load
命令加载模块(通过文件名)及其依赖项(您可以通过在GHCi提示符下键入:help
或:?
来阅读)。
此外,:load
命令会清除当前GHCi会话中定义的所有先前声明,因此,为了加载当前目录中的所有文件,您可以执行以下操作:
Prelude> :q
Leaving GHCi.
➤ ghci *.hs
GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
<no location info>:
module `main:NecessaryModule' is defined in multiple files: NecessaryModule.hs
test2.hs
Failed, modules loaded: none.
Prelude> :q
Leaving GHCi.
➤ rm test2.hs
➤ ghci *.hs
GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
[1 of 2] Compiling NecessaryModule ( NecessaryModule.hs, interpreted )
[2 of 2] Compiling Main ( test.hs, interpreted )
Ok, modules loaded: NecessaryModule, Main.
*NecessaryModule>