问题标签 [ghci]

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 投票
4 回答
9006 浏览

haskell - 为什么我不能在 ghci 中定义一个新类型?

当我尝试定义新类型时,我在 ghci 中遇到错误:

我究竟做错了什么?

0 投票
3 回答
477 浏览

haskell - 为什么这个 Haskell 语句不懒惰地评估?

我定义了以下函数:

然后,当我执行以下操作时:

它试图计算无限序列的总和,而不是懒惰并返回 1。为什么?


编辑:经过进一步调查,我发现如果我ex在文件中定义函数会发生惰性,但如果我在 GHCI 中定义它则不会:

如果我将ex定义拉入文件(在本例中为 test.hs):

那么,新的问题是为什么?

0 投票
3 回答
820 浏览

ghci - ghci 显示执行堆栈

所以我正在完成 Real World Haskell 的一些初始章节练习,我想知道 GHCi 中是否有一个选项可以让它在每个递归调用上显示带有参数的函数评估。例如,我写了一个简单版本的“map”,当我应用它时,我希望 GHCi 显示每个带有实际参数的递归调用(希望是表达式结果)。可以让我了解幕后发生的事情。

PS 在我写这篇文章时,我有一种感觉,它可能会受到 haskell 执行模型的懒惰的限制,如果我错了,请纠正我。

0 投票
1 回答
192 浏览

haskell - GHCi 的 MonadError 的默认实现是什么?

考虑以下测试函数:

在 GHCi 提示符下,我可以执行以下操作:

因为我已经声明了 Either String _ 作为表达式的类型,所以它使用了 MonadError 的 Either String 实现。我假设如果我自己没有指定 MonadError 的实现,或者从另一个函数调用这个函数,允许类型推断,我会得到一个错误。反而:

GHCi 似乎提供了某种“默认”错误单子。有人可以解释这里发生了什么吗?

0 投票
4 回答
8955 浏览

haskell - ghci 配置文件

我在 Ubuntu 上使用 ghci 6.8.2。ghci 是否使用配置文件,我们可以在其中进行一些初始设置?例如::set prompt "ghci> "

0 投票
4 回答
2661 浏览

haskell - Haskell中一元运算符的前缀形式

在 GHCi 中:

  1. 前奏> (+3) 2
    5
  2. 前奏> (*3) 2
    6
  3. 前奏>(/3)2
    0.6666666666666666
  4. Prelude> (-3) 2
    (Num (t -> t1))
    没有由字面 it' 产生的实例:it = (- 3) 23' at <interactive>:1:2
    Possible fix: add an instance declaration for (Num (t -> t1))
    In the expression: 3
    In the expression: (- 3) 2
    In the definition of

如何更正最后一个以使其返回-1?

0 投票
5 回答
22693 浏览

syntax - Haskell Error: parse error on input `='

Specs

GHC 6.12.1

Mac OS X 10.6.4 x64

MacBook Pro

Problem

I'm having trouble using let syntax. The following code refuses to compile:

I tried tabbing in y = 2 and z = 3 even more. No dice.

(Undesirable) Solutions

The only way I've gotten the code to compile is either

  1. Replacing hard tabs with spaces.
  2. Replacing the let clause with a where clause.
0 投票
2 回答
6506 浏览

haskell - 如何配置 GHCi 自动导入模块

当我使用 GHCi 时,我几乎总是会导入Control.Applicative,Data.List等。有没有办法配置 GHCi 以自动导入这些模块。

另外,在导入它们之后,如何防止提示过长?

0 投票
2 回答
3050 浏览

haskell - Haskell 中的多个源文件

我正在用 Haskell 编写我的第一个大项目,我想将它拆分为多个文件。到目前为止,我已经编写了两个模块,Parse并且Eval. 我想要一个Main只包含这两个模块并指定main功能的模块。我有文件Main.hs,Parse.hsEval.hs并将它们导入Main,但是会发生这种情况:

parse函数来自 Parsec 库,该库以Parse.hs. 怎么了?

0 投票
1 回答
1607 浏览

ghci - 空列表上的 head 和 tail 调用带来异常

我正在关注一个教程。(真实世界的 Haskell)

我有一个关于空列表的头尾问题的初学者问题:在 GHCi 中,它返回异常。

直觉上我想我会说他们都应该返回一个空列表。你能纠正我吗?为什么不 ?(据我记得在 OzML 中,空列表的左侧或右侧返回 nil)

我肯定还没有在教程中讨论这个主题,但它不是错误的来源(如果不提供参数)?我的意思是,如果曾经向函数传递一个可能是可选的参数列表,那么用 head 读取它们可能会导致错误?

我只知道 GHCi 的行为,我不知道编译时会发生什么。