0

我对haskell非常陌生,我一直在网上搜索,但我无法解决我的问题。我下载了 Quipper,但我无法让 haskell 识别所有模块和文件的位置以及如何正确链接所有内容。

我已经下载了所有文件和程序并正确安装了它们,我只是不知道如何让 haskell 识别 quipper 库和模板。每次我尝试:

:load And_gate.hs或其他文件。

我得到:

Could not find module "Quipper"或其所需的相应模块。

我不认为这是一个错误或任何东西,我认为这只是我对 haskell 的工作原理缺乏了解。

我正在使用Windows 7。

4

3 回答 3

2

所以我给创建 Quipper 的教授之一 Peter Selinger 发了电子邮件。

我唯一需要做的就是在 MSYS 内部:

ghci -iC:/quipper -iC:/quipper/quipper

这会正确地符合所有内容并且文件可以正常运行。

这是他给我的电子邮件:

亲爱的 - - -,

谢谢你的来信。让我看看能不能帮上忙。

您是否按照自述文件中的说明进行操作?在“构建各种算法和程序”下,指令是运行“make”。这将自动在“测试”目录中构建所有测试。

接下来,要编译 Quipper 程序,您应该使用位于 quipper/scripts 中的“quipper”脚本。它的工作方式与“ghc”类似,只是它会在搜索路径中自动包含 Quipper 文件的正确目录。在 Windows 上,您将使用“quipper.bat”。

Quipper 并不是真的要以交互方式运行,即从 ghci 运行。但是,如果您确实需要以交互方式运行 Quipper,我建议使用“quipperi”脚本,也在 quipper/scripts 中。这也将正确设置加载路径。在 Windows 中,使用“quipperi.bat”。

最后,如果您需要包含来自 ghci 的 Quipper 内容,但由于某种原因不能或不想使用 quipperi 脚本,则需要使用“-i”选项指定这些目录,例如

ghci -iC:/quipper -iC:/quipper/quipper

可能是在 Windows 中,您需要使用“\”而不是“/”,但我不确定这是否有必要。

我希望这会有所帮助,--彼得

使用 ghc 编译和 exe 时,只需确保包含以下命令:

-iC:/quipper -iC:/quipper/quipper.

如果您按照 Selinger 教授的建议使用 quipper 脚本,则在 MSYS 内部执行以下操作:

导航到保存所有 Quipper 文件的文件夹,这是我的情况:

cd C:/quipper/quipper/scripts

然后quipper在 MSYS 中键入文件的位置来编译一个 exe,如下所示:

quipper C:/quipper/tests/And_gate.hs

该文件将编译并应打印更新,如下所示:

[1 of 22] Compiling Libraries.Typeable (......

[2 of 22] Compiling Libraries.Tuple (......

等等。

exe(在这种情况下And_gate.exe)将位于从 ( C:/quipper/tests) 编译的文件夹中。您需要将其移动到包含 acroread.bat 的文件夹中,quipper/scripts以使其正常工作。

于 2013-08-06T00:59:37.347 回答
1

出于某种原因,此代码未打包为标准 Haskell 包。如果是的话,安装它会相当简单。事实上,README 文件中的说明看起来很糟糕(尤其是在 Windows 下,看起来您需要 MSYS 来运行 makefile)。

您的问题可能就像告诉 GHCi 查找哪个文件夹以查找文件一样简单;你可以使用:cd命令来做到这一点。由于您使用的是 Windows,我建议您尝试使用 WinGHCi,它应该允许您使用 GUI 浏览到正确的文件夹。

如果它不是那么简单......真的,作为一个 Haskell 初学者,你可能会很难让它工作。文档看起来非常少。

于 2013-08-04T17:44:50.957 回答
1

如果你把所有的东西都弄红了READMEINSTALLING.windows那么你应该将 Quipper 的脚本文件夹的路径添加到环境变量中。这是路径:

quipper-*/quipper/scripts/

哪里quipper-*<distribution name>-<version>

该文件夹中有两个重要的脚本。第一个是quipper.bat运行ghc编译器来运行 Quipper 的模块。第二个是Quipperquipperi.batghci类似物。

现在,当您添加变量路径时,您可以And_gate.hs在 Quipper 的解释器中运行如下:

quipperi And_gate.hs 
于 2014-09-24T02:48:49.303 回答