问题标签 [winghci]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2041 浏览

haskell - Haskell:显示/获取所有用户定义函数的列表

Haskell 中是否有一个命令显示(或作为列表获取)所有已在 GHCi 中加载/定义的用户定义函数?谢谢

0 投票
1 回答
6502 浏览

haskell - Haskell:在 WinGHCi 中卸载模块

我加载了两个模块(NecessaryModule1.hs 和 NecessaryModule2.hs 在Haskell 中外联:在当前目录路径中加载所有文件)。现在我想卸载 NecessaryModule2.hs。我在System.Plugins.Load中找到了一个“卸载”功能,但它在 WinGHCi 中不起作用。我得到的错误信息是:

我试过

但这没有用。有没有办法以上述方式卸载模块?

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

[对里卡多的回应]

嗨,Riccardo,我尝试了你的建议,但我无法让它在 WinGHCi 中工作。我有一个文件 NecessaryModule1.hs 如下:

我通过 ':cd' 命令找到了文件所在的位置,然后:

它是否正确?谢谢[编辑:见下文更正]

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

[以上更正]

只是为了解释为什么上面是不正确的(正如 Riccardo 所解释的那样),需要做的是以下几点:

如果我们有一个文件 NecessaryModule1.hs 如下:

然后我们做:

0 投票
1 回答
432 浏览

haskell - Haskell:隐藏模块中的函数(即使函数只能被同一模块中的其他函数使用)

假设我有一个文件 NecessaryModule.hs,它具有以下内部结构:

当我做 :

addNumber1 和 addNumber2 在当前范围内都可用。有没有办法隐藏函数 addNumber2 以便它可用于同一模块中的其他函数但当我以上述方式加载模块时不会加载?谢谢

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

[对纳米窃贼的回应]

我通过以下方式尝试了您的建议,但它对我不起作用。我有一个名为 test2.hs 的文件,如下所示:

但是当我这样做时

然后我可以同时调用 addNumber1 和 addNumber2。我做错了什么吗?谢谢

0 投票
2 回答
6423 浏览

haskell - Haskell:一次只能通过 :load 加载一个文件

假设我有两个模块 NecessaryModule1 和 NecessaryModule2 (如Haskell 后所述:在当前目录路径中加载所有文件。然后我在 WinGHCi 和 GHCi 中都注意到,如果我这样做:

即加载NecessaryModule2 消除了NecessaryModule1 中的所有功能。

那么这是否意味着我可以同时加载 NecessaryModule1 和 NecessaryModule2 的唯一方法是使用第三个文件(同时导入 NecessaryModule1 和 NecessaryModule2)然后加载第三个文件?(例如,参见Haskell 中的 test.hs:在当前目录路径中加载所有文件)谢谢。

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

[对极客龙的回应]

嗨,如果我已经完成:load NecessaryModule1,然后我想在 MyMod.hs 中加载模块:

那我该怎么做呢?In Haskell : unload module in WinGHCi Riccardo 解释说:module假设模块已经被加载。那么这是否意味着实现加载多个自定义模块的唯一方法就是通过一次:load函数调用来加载它们呢?谢谢。

0 投票
2 回答
13408 浏览

haskell - Haskell:理解 ghci 中的“无实例”错误消息

问题 1

嗨,如果在 WinGHCi 中我故意执行以下错误的代码:

然后我得到的错误信息是

究竟是什么No instance for (Num (a0 -> t0))意思?

问题2

为什么下面的代码:

产生与第二段代码略有不同的错误:

即在第一段代码中,我们No instance for (Num (a0 -> t0))在第二段代码中拥有 where No instance for (Num (a1 -> a0))


[对 ehird 的回应]

(从答案评论中移出的问题):

1)我很欣赏后两种表达方式的不同,但你是说我不应该试图理解为什么解释器选择(Num (a0 -> t0))前者和(Num(a1 -> a0))后者,除了它们不同的事实吗?

2)嗨,当你说“但没有函数的 Num 实例”时,前者是什么意思?抱歉,我不清楚实例的概念是什么。此外,出于好奇,您能否使用您的实例Num (a -> b)方法以某种方式告诉解释器解释3 44 modulo 3

0 投票
1 回答
866 浏览

haskell - 文件处理-Haskell

如何在haskell中实现以下内容:

  1. 我从命令行收到一个输入文件。此输入文件包含用制表符、换行符和空格分隔的单词。
  2. 我必须用逗号替换这些元素(制表符、换行符和空格)。
  3. 然后将结果写入一个名为output.txt.

任何帮助深表感谢。我的 Haskell 技能仍在发展中。


到目前为止,我有这个代码:

在 processFile 函数中,我应该处理输入文件中的文本。

0 投票
4 回答
16120 浏览

haskell - 如何在 WinGHCi 中查看当前工作目录

我已经开始自学 Haskell,为此我安装了适用于 Windows的 Haskell 平台。我现在正在使用WinGHCi。我了解到它具有:cd用于更改目录的命令。但问题是,我怎么知道我目前在哪个目录?首先不知道为什么我要更改目录。我搜索了很多,但找不到答案。

请告诉我是否有办法知道当前工作目录。最好我想配置命令提示符本身以显示当前目录,就像 Linux 的控制台一样。


按照@Daniel 的建议,我做了这些:

  • 由于我在 Windows 7 上工作,因此没有.ghci文件(我认为它适用于类 Unix 操作系统),所以我在文件夹中创建了一个文件,ghci.conf如此C:\Users\Apelles\AppData\Roaming\ghc所示
  • 将 Daniel 回答中的脚本复制粘贴到ghci.conf.
  • 然后我开始ghci.exe了类似控制台的窗口。我注意到它加载的模块比以前通常加载的模块多。这是快照:

在此处输入图像描述

如您所见,它加载了更多模块,最后一行说,

无法解析提示字符串。使用 Haskell 语法。

这是什么意思?哪一行导致问题(来自以下脚本)?

此外,如果我将ghci.conf文件重命名为某个随机名称,然后 start ghci.exe,它会加载这些模块: 在此处输入图像描述

正如我之前所说,它加载的模块数量更少,这意味着使用ghci.confghci.exe可以成功执行某些操作,但有时会失败。如何解决?

0 投票
3 回答
3694 浏览

haskell - 启动在 haskell 平台包 2012.2.0.0 中提供的winghci 时出错

每次我双击winghci.exe 时都会CreateGHCiProcess failed with failed with error 2弹出一条错误消息。我假设安装没有成功完成设置环境变量,因为 cmdC:\>ghci最终也没有找到命令。任何人都可以帮助发布安装期间可能发生的更改或任何解决方案吗?

0 投票
1 回答
3250 浏览

haskell - 如何设置WinGHCi的工作目录

我刚刚安装了 WinGHCi。当我尝试使用 Ctrl+L 加载 .hs 文件时,它会打开C:\Program Files (x86)\Haskell Platform\2012.2.0.0\winghci我安装它的文件浏览器。我不希望它默认去那里,我将我的代码文件保存在不同驱动器上的不同目录中,并且我不想D:\MyPath\Haskell每次加载文件时都必须导航到。

我试图设置用于启动 WinGHCi 的快捷方式的“开始于”字段,但它没有任何改变。

如何让 WinGHCi 默认在我自己的目录中查找?

0 投票
1 回答
1638 浏览

haskell - WinGHCi 无法启动

因此,我尝试在 WinGHCi 中“设置提示符“λ>”,它崩溃了,之后就无法重新启动(不响应)。我重新安装了 Haskell 平台,但它仍然无法启动(不响应)。GHCi 在 cmd 中工作。在第一次卸载/重新安装 WinGHCi 之前,我搜索了剩余的 .conf 文件,这可能使其崩溃但找不到任何文件。我会很感激任何帮助,在此先感谢。