问题标签 [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.
haskell - 需要有关 haskell 表达式的帮助(不在范围内编译器错误)
嗨,我有以下代码
并且编译器说以下不在“链”、“整数”、“数字”范围内
为什么编译器会抱怨这些命令,chain、int 和 number 不是众所周知的名称吗?
编辑
如果您在哪里使用以下解析器,您将如何解决问题?
haskell - 函数变量不在 Haskell 范围内
嗨,我有以下代码
但是我得到“不在范围内”生成“,为什么会这样?
问候达伦
编辑我正在导入 Test.QuickCheck 但它仍然抱怨“生成”不在范围内。
编辑 2
您将如何编写此函数以使其与 quickcheck 版本 2 一起使用?我简单地尝试将“unGen”放在生成没有成功的地方,我还安装了 quickcheck v 2(cabal install QuickCheck-2.1.0.3)
我需要一个具有以下属性的函数,stdGen->Gen Expr->Expr'
而 unGen 似乎为我提供了该功能,但正如我所说,我的编译器找不到该函数。我可以使用其他任何功能来解决这个问题吗?
haskell - Haskell 模块:隐藏名称和 ghci
我试图从 Haskell 模块中仅导出名称的子集,但 ghci 很高兴地让我甚至可以访问隐藏的名称。
但是当在 ghci 中尝试这个时,我得到:
我究竟做错了什么?
(编辑:为了它的价值,我在 Arch Linux 上使用 ghci 6.12.3)
command-line - 将文件传递给 GHCi 并在命令行上接收输出?
在 Python 中可以这样说:
从命令行并接收script.py
内联的输出。用 Haskell 的 GHCi 可以做到这一点吗?基本上我想知道是否有一种方法可以从命令行运行 Haskell 程序而无需编译且无需用户输入解释器。
browser - 从 Haskell 解释器打开浏览器
我一直在搞乱 oeis.org,我在 Hackage 上找到了一个模块,它提供了 oeis.org (Math.OEIS) 的接口,但它在命令行上显示了它的结果。我想知道是否有人知道如何在 ghci 的默认浏览器中打开一个 url。
谢谢
haskell - 在 GHCi 中映射换行符
简单的问题,但我似乎无法弄清楚。我有一个列表,我想在自己的行上打印出它的每个元素。我可以
例如,它将一起打印出来,但没有换行符。我的想法是这样做map (putStrLn $ show) [1..10]
,但这行不通,因为我刚刚得到一个[IO()]
. 有什么想法吗?
haskell - 为什么我不能在 GHCi 中定义类型?
为什么我不能在 GHCi 中定义类型?
haskell - 如何在 GHCI 中查找多个导入方法的类型签名
我正在使用一个已加载到 GHCI 中的库。
从函数的名称来看,我应该使用哪个函数并不明显;我确定它存在,并希望查看我可用的函数的类型签名列表。我不知道该怎么做。
- 我可以通过键入模块名称并在 GHCI 中使用制表符完成来获取库导出的所有函数的列表。
- Hoogle对我来说没用,因为有问题的图书馆没有被覆盖。不过,Hoogle 风格的搜索会很有用。
- 我知道 GHCI 的
:t
,但它似乎只适用于单个函数,我不想对库导出的每个函数都这样做。 - 在源目录上运行
grep -R :: ./*
或类似操作可能会省略没有显式类型签名的函数。 - 该库有 Haddock 文档,但它有大约 1000 个函数,分布在几十个子模块中,手动搜索它们既乏味又容易出错。
我愿意尝试任何方法,但显然更喜欢简单、便携和可重复的方法。
有没有办法找到库中所有导出函数的类型签名?或者找出哪些函数具有包含某种类型的类型签名?
debugging - 使用 GHCi 调试 Haskell 程序中的无限循环
我第一次在我正在编写的 Haskell 程序中遇到无限循环。我已经将它缩小到一个非常具体的代码部分,但我似乎无法准确指出我在哪里有一个非终止递归定义。我对 GHCi 中的 :trace 和 :history 有点熟悉,但问题是我的代码的某些分支涉及 a 的相当多的递归修改,Data.Map.Map
因为地图x
是通过adjust
在地图中x'
基于值的某些东西获得的在另一张地图上取决于x'
. 细节在这里并不重要,但正如您可能知道的那样,如果这以一种交织在一起的递归方式发生,我的调用历史将完全陷入 map lookup
、adjust
ments 和insert
ions 所涉及的所有各种比较中。
谁能推荐一种更有效的方法来定位无限循环?例如,将调用历史限制为来自单个源文件的调用会很有帮助。