gpt4 book ai didi

haskell - 如何配置Haskell/ghci模块搜索路径?

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

我有第一个应用程序文件 Myapp.hs

我创建了一个用于解析 csv 文件的模块,名为 Csvparser,它在文件 Csvparser.hs 中定义。

两个文件位于同一目录中。

我不明白如何在 Myapp.hs 中导入 Csvparser 模块

Prelude Data.Maybe Data.List Data.Time Data.Either> :load C:\Test\Haskell\MyApp.hs
[1 of 1] Compiling Main ( C:\Test\Haskell\MyApp.hs, interpreted )

C:\Test\Haskell\MyApp.hs:5:1: error:
Could not find module `Csvparser'
Use -v to see a list of the files searched for.
|
5 | import Csvparser
| ^^^^^^^^^^^^^^^^
Failed, no modules loaded.
Prelude Data.Maybe Data.List Data.Time Data.Either>

该模块可以独立加载并运行

Prelude Data.Maybe Data.List Data.Time Data.Either> :load C:\Test\Haskell\Csvparser.hs
[1 of 1] Compiling Csvparser ( C:\Test\Haskell\Csvparser.hs, interpreted )
Ok, one module loaded.
*Csvparser Data.Maybe Data.List Data.Time Data.Either> import Csvparser
*Csvparser Data.Maybe Data.List Data.Time Data.Either Csvparser> :t Csvparser.parseCSV
Csvparser.parseCSV :: String -> Either ParseError [[String]]
*Csvparser Data.Maybe Data.List Data.Time Data.Either Csvparser>

这是 MyApp.hs 第 5 行的失败语法

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ScopedTypeVariables #-}


import Csvparser
import Database.HDBC
import Database.HDBC.ODBC

我该怎么做才能让 ghci/haskell 明白 Csvparser 模块可以在 MyApp.hs 的同一目录中找到?

最佳答案

如果你想运行ghci来自包含该文件的文件夹的不同文件夹:

ghci -iC:\Test\Haskell\

-i设置导入搜索路径,然后执行以下操作:

:load C:\Test\Haskell\MyApp.hs

或者从 ghci 内部控制台执行:

:set -iC:\Test\Haskell\

如果你想查看 haskell 在哪个文件夹中查找模块,只需调用:

:show paths

它应该打印 module import search paths: 下的路径列表

如果您运行ghci,则所有这些都是不必要的从包含您的文件的文件夹中,因为默认情况下 Haskell 将始终在当前文件夹中查找导入。

-i 之间不要留空格和路径

关于haskell - 如何配置Haskell/ghci模块搜索路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674687/

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