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

haskell - 需要帮助在 Haskell 中编写候选函数

嗨,看看 这个线程已经在处理这个主题而且这个线程可能很有趣。

我正在尝试编写一个函数

给了一个数独

并且位置 ( type Pos = (Int, Int)) 确定您可以在其中写入的数字,例如在已经包含 (1,2,4,7,9,x,x) 的数独行中,您不能在最后写入任何已经存在的数字排。另一个问题是检查高度和宽度,这样数字就不会出现多次(普通数独规则)。那么关于如何开始的任何建议?

示例:数独>候选人示例 (0,2) [4,8]

0 投票
2 回答
1171 浏览

haskell - 需要有关 haskell 表达式的帮助(不在范围内编译器错误)

嗨,我有以下代码

并且编译器说以下不在“链”、“整数”、“数字”范围内

为什么编译器会抱怨这些命令,chain、int 和 number 不是众所周知的名称吗?

编辑

如果您在哪里使用以下解析器,您将如何解决问题?

0 投票
2 回答
3367 浏览

haskell - 函数变量不在 Haskell 范围内

嗨,我有以下代码

但是我得到“不在范围内”生成“,为什么会这样?

问候达伦

编辑我正在导入 Test.QuickCheck 但它仍然抱怨“生成”不在范围内。

编辑 2

您将如何编写此函数以使其与 quickcheck 版本 2 一起使用?我简单地尝试将“unGen”放在生成没有成功的地方,我还安装了 quickcheck v 2(cabal install QuickCheck-2.1.0.3)

我需要一个具有以下属性的函数,stdGen->Gen Expr->Expr' 而 unGen 似乎为我提供了该功能,但正如我所说,我的编译器找不到该函数。我可以使用其他任何功能来解决这个问题吗?

0 投票
2 回答
914 浏览

haskell - Haskell 模块:隐藏名称和 ghci

我试图从 Haskell 模块中仅导出名称的子集,但 ghci 很高兴地让我甚至可以访问隐藏的名称。

但是当在 ghci 中尝试这个时,我得到:

我究竟做错了什么?

(编辑:为了它的价值,我在 Arch Linux 上使用 ghci 6.12.3)

0 投票
1 回答
352 浏览

command-line - 将文件传递给 GHCi 并在命令行上接收输出?

在 Python 中可以这样说:

从命令行并接收script.py内联的输出。用 Haskell 的 GHCi 可以做到这一点吗?基本上我想知道是否有一种方法可以从命令行运行 Haskell 程序而无需编译且无需用户输入解释器。

0 投票
1 回答
884 浏览

browser - 从 Haskell 解释器打开浏览器

我一直在搞乱 oeis.org,我在 Hackage 上找到了一个模块,它提供了 oeis.org (Math.OEIS) 的接口,但它在命令行上显示了它的结果。我想知道是否有人知道如何在 ghci 的默认浏览器中打开一个 url。

谢谢

0 投票
3 回答
496 浏览

haskell - 在 GHCi 中映射换行符

简单的问题,但我似乎无法弄清楚。我有一个列表,我想在自己的行上打印出它的每个元素。我可以

例如,它将一起打印出来,但没有换行符。我的想法是这样做map (putStrLn $ show) [1..10],但这行不通,因为我刚刚得到一个[IO()]. 有什么想法吗?

0 投票
1 回答
404 浏览

haskell - 为什么我不能在 GHCi 中定义类型?

为什么我不能在 GHCi 中定义类型?

0 投票
1 回答
286 浏览

haskell - 如何在 GHCI 中查找多个导入方法的类型签名

我正在使用一个已加载到 GHCI 中的库。

从函数的名称来看,我应该使用哪个函数并不明显;我确定它存在,并希望查看我可用的函数的类型签名列表。我不知道该怎么做。

  • 我可以通过键入模块名称并在 GHCI 中使用制表符完成来获取库导出的所有函数的列表。
  • Hoogle对我来说没用,因为有问题的图书馆没有被覆盖。不过,Hoogle 风格的搜索会很有用。
  • 我知道 GHCI 的:t,但它似乎只适用于单个函数,我不想对库导出的每个函数都这样做。
  • 在源目录上运行grep -R :: ./*或类似操作可能会省略没有显式类型签名的函数。
  • 该库有 Haddock 文档,但它有大约 1000 个函数,分布在几十个子模块中,手动搜​​索它们既乏味又容易出错。

我愿意尝试任何方法,但显然更喜欢简单、便携和可重复的方法。

有没有办法找到库中所有导出函数的类型签名?或者找出哪些函数具有包含某种类型的类型签名?

0 投票
5 回答
6849 浏览

debugging - 使用 GHCi 调试 Haskell 程序中的无限循环

我第一次在我正在编写的 Haskell 程序中遇到无限循环。我已经将它缩小到一个非常具体的代码部分,但我似乎无法准确指出我在哪里有一个非终止递归定义。我对 GHCi 中的 :trace 和 :history 有点熟悉,但问题是我的代码的某些分支涉及 a 的相当多的递归修改,Data.Map.Map因为地图x是通过adjust在地图中x'基于值的某些东西获得的在另一张地图上取决于x'. 细节在这里并不重要,但正如您可能知道的那样,如果这以一种交织在一起的递归方式发生,我的调用历史将完全陷入 map lookupadjustments 和insertions 所涉及的所有各种比较中。

谁能推荐一种更有效的方法来定位无限循环?例如,将调用历史限制为来自单个源文件的调用会很有帮助。