Haskell:在当前目录路径中加载所有文件

art*_*lla 5 haskell ghc ghci winghci

命令(在GHCi中)

:load abc
Run Code Online (Sandbox Code Playgroud)

加载文件abc中的函数(必须存在于当前目录路径中).如何加载当前目录路径中的所有文件?谢谢

-------------------------------------------------- --------------------------------

[回复以下帖子]

嗨Rotskoff,谢谢我尝试了你的建议,但我无法让它工作,所以我想我一定是误解了一些东西.

我创建了3个文件test.hs,test1.hs和test2.hs,如下所示:

- >

--test.hs
import NecessaryModule
Run Code Online (Sandbox Code Playgroud)

- >

--test1.hs
module NecessaryModule where

addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b
Run Code Online (Sandbox Code Playgroud)

- >

--test2.hs
module NecessaryModule where

addNumber2 :: Int -> Int -> Int
addNumber2 a b = a + b
Run Code Online (Sandbox Code Playgroud)

那时我做了:

:load test
Run Code Online (Sandbox Code Playgroud)

我收到了错误消息:

test.hs:1:8:
    Could not find module `NecessaryModule':
      Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)

谢谢

-------------------------------------------------- -------------------------------

谢谢.这就是我做的工作(按照Rotskoff的建议):

- >

--test.hs
import NecessaryModule1
import NecessaryModule2
Run Code Online (Sandbox Code Playgroud)

- >

--NecessaryModule1.hs
addNumber1 :: Int -> Int -> Int
addNumber1 a b = a + b
Run Code Online (Sandbox Code Playgroud)

- >

--NecessaryModule2.hs
addNumber2 :: Int -> Int -> Int 
addNumber2 a b = a + b
Run Code Online (Sandbox Code Playgroud)

rot*_*off 5

大概你的意思是Haskell源文件,因为你不能:load在GHCi中使用命令来做任何其他事情.

在您加载的源文件的顶部,包括以下行:

import NecessaryModule

对于每个源文件,请确保为模块命名,例如,

module NecessaryModule where

应该出现.GHCi将自动链接所有文件.

如果您尝试导入数据,请查看System.Directory文档.