问题标签 [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 投票
3 回答
274 浏览

haskell - Haskell:是否还有其他诸如“_”之类的东西可以用来表示您不在乎值是什么?

所以我写了一个 hexappawn 游戏,我正在尝试制作一个函数,如果棋盘处于获胜状态,则返回 True,此时它看起来像这样:

因此,如果没有留下黑色或白色棋子,或者没有人可以移动,但如果对方棋子到达棋盘末端(另一种在六棋子中获胜的方式),则此方法无效。变量blackPieceswhitePieces是坐标列表,即 [(1,1),(2,1),(3,1)] 这些棋子在大小为n 的棋盘上的位置(如果白棋,则转为真)

我很想将这些条件添加到方法中,但编译器不喜欢它。

有没有其他方式可以说“ whitePieces中是否有第二个元素是 1 的元组(即到达棋盘的另一边)。”

提前感谢您的有用评论。

0 投票
1 回答
474 浏览

haskell - Applicative 的 ghci 特例?

在 ghci 中:

这是否意味着 ghci 执行 Applicative 并显示结果,就像IO

请注意,pure ()不要pure (+1)打印任何内容。

0 投票
3 回答
194 浏览

haskell - Haskell 的类型同义词给出类型错误

我正在尝试创建一个看起来像这样的类型同义词:

我遇到了困难,因为当此代码编译时,当我尝试使用 [Token] 创建结果时,haskell 抱怨

如何使用有效的构造函数定义类型同义词?!

0 投票
2 回答
317 浏览

haskell - GHCI 环境转储

GHCi 中有没有办法基本上获得状态转储?我的意思是一个列表:

  • 所有加载的运算符及其优先级、关联性和签名。
  • 所有加载的类。
  • 所有加载的数据、类型和新类型以及它们是哪些类的实例。
  • 所有加载的函数都带有它的签名,以及它们所属的类(如果有的话)。

假设这是可能的,是否也可以在运行时执行此操作,例如在异常期间?

0 投票
1 回答
2711 浏览

haskell - 如何使用 ghci 加载没有 .hs 扩展名的 runhaskell 脚本?

我在 haskell 中编写了一个脚本,命名testscript为以下代码:

使脚本可执行后,我可以使用./testscript. 但是,当我尝试使用 ghci(即使用:l testscript)加载脚本时,出现错误

如果我重命名testscripttestscript.hs,并尝试再次使用 ghci 加载,我会收到错误消息

如果我删除 shebang 线,它可以正常工作。但是,每次我想在 ghci 中尝试脚本时,都必须.hs向脚本添加扩展名,删除第一行,然后删除扩展名并添加 shebang 行(这在我每次想要进行更改时都很常见).hs给它)。有没有更简单的方法来做到这一点?

我在 Mac OS X 10.6.8 下使用 ghc 版本 7.0.3

0 投票
1 回答
204 浏览

haskell - 尝试为数据类型定义实例 Show 时出现无限循环

我有一个数据类型为 Card 的已安装模块。我将其设为 Show 类的实例,但 ghci 出现问题:

我打开 ghci 并输入:

看来我的数据类型不是Show类的实例,为什么?


谢谢大家!有用!:)

0 投票
2 回答
2758 浏览

haskell - 显示 IO 类型

我有一个包含 IORef 作为重要元素的数据类型。这意味着没有一种干净的方法可以使它成为show类型类的成员。这还不错,因为我print在 IO monad 中有一个针对这种类型的函数。但是在 GHCi 中很烦人,因为每次我返回其中一个结果时,我都会收到一个错误,指出它无法显示。

有没有办法让在 IO monad 中运行的 GHCi 使用 IO 动作来显示结果?如果没有,写作会有什么负面影响show a = unsafePerformIO $ print a吗?

0 投票
4 回答
447 浏览

haskell - Haskell:使用 $ 的函数应用程序

在下面的代码片段中,您可以看到我在 Haskell 中编写的两个 collat​​z 函数。对于递归应用程序,我在第一个示例 (collat​​z) 中使用了括号来获得正确的优先级。

因为我刚刚学习了 $ 的函数应用程序,所以我尝试使用那个东西重写函数(collat​​z')。但是,我遇到以下错误:

无法将预期类型 `[a]' 与推断类型 `a1 -> [a1]' 匹配 在 `(:)' 的第二个参数中,即 `collat​​z'' 在 `($)' 的第一个参数中,即`n : collat​​z'' 在表达式中:n : collat​​z' $ n `div` 2

这对我来说很奇怪,这不起作用。所以我尝试了一个类似的例子:

如果有人可以看看它并告诉我我做错了什么,我将不胜感激。

0 投票
5 回答
38274 浏览

haskell - GHCi 中的多行命令

我在 ghci 中输入多行命令时遇到问题。

以下 2 行代码适用于文件:

但是当我输入 ghci 时,我得到一个错误:

我也尝试将代码放入其中:{ ... :},但它们也不适用于此示例,因为这只是将行附加到一行中,情况不应该如此。

我正在使用 WinGHCi,版本 2011.2.0.1

0 投票
5 回答
2726 浏览

haskell - GHCi 中的类型推断与手动签名

当我输入

进入 GHCi,它说类型是:

但是,如果我创建一个type-test.hs包含

ghc 和 ghci 都抱怨:

当未启用 FlexibleContexts 时,为什么 ghci 允许我推断此类型(使用 :t)?