问题标签 [non-exhaustive-patterns]

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 投票
1 回答
723 浏览

haskell - Haskell中的“(_:_:_)”是什么意思(来自GHCI的非详尽模式匹配错误)?

运行 Haskell 程序时,我从 GHCI 收到以下错误:

我一直在搜索 web/SO,但似乎无法找到解释(_:_:_)。我的猜测只是一个空列表,但我已经在我的函数中考虑了这一点。

不确定它是否相关,但这是我的程序:

我认为问题只是我不知道是什么(_:_:_)

0 投票
2 回答
317 浏览

haskell - 避免在 GHCI 中出现不适当的非详尽模式匹配警告

在您将其视为重复项之前

我看到至少截至 2018 年 9 月,GHCI 不允许您在本地禁用警告(尽管您可以在整个文件中)。

但也许还有其他方法可以让 GHCI 知道每个案件实际上都在处理?

问题

我有时使用的一个习惯用法是编写一个函数,其中第一个定义测试某些谓词并返回 Left,其他定义考虑操作实际有意义的参数。每当我这样做时,我都会收到“模式匹配并非详尽无遗”的错误,但我确实在检查每个条件。

例子

(有关激发这个玩具示例的真实代码,请参见pExprToHExpr 此处的定义。)

这段代码:

生成此错误:

在其他情况下,我只会细分Instrument类型:

但是(在这个假想的物理学中)一组Drums可能具有最高音调,如果它包含 a Cowbell,那么它不适合 thePercussivePitched类型。

0 投票
1 回答
30 浏览

haskell - 在方法上获取非详尽的模式异常

我不断收到non-exhaustive pattern以下方法的异常:

我想要做的是:给定一个数组[1,2,3,3,4,4,4,1],我想将其拆分为连续重复的列表:[[1],[2],[3,3],[4,4,4],[1]]

我正在使用2累加器,一个用于当前形成列表,另一个用于大列表。

我不能将wild-card既不用于big列表也不用于smallone ,因为唯一不寻常的情况是空输入列表。

0 投票
1 回答
162 浏览

haskell - 如何实现一个函数来更改数组单元以避免haskell中的非详尽模式错误?

我的目标是编写一个名为 walk 的函数,它可以将迷宫单元的值与其邻居切换。例如,调用 walk 0 labyrinthA 应该将 T 单元格向左移动。在这里,我尝试更改 ghci 中迷宫单元的值。

现在我试着让'T'用 walk 0 labyrinthA 向左走

其中 yKoord 和 xKoord 是整数。
在此处输入图像描述

0 投票
2 回答
633 浏览

rust - 如何放松对已知变体的嵌套匹配的非详尽模式检查?

我如何说服 Rust 编译器内部match表达式在这里很好,因为外部match已经限制了可能的类型?

我尝试了两种方法,但似乎都不起作用。

  1. 命名或模式,然后使用该名称进行匹配:

    这不是有效的 Rust 语法。

  2. 命名并绑定每个构造函数:

    这仍然不能满足详尽检查,因此出现相同的错误消息:

    /li>

有没有解决这个问题的惯用方法,或者我应该把panic!("shouldn't happen")所有地方都放在哪里或重组代码?

Rust 游乐场链接

0 投票
2 回答
170 浏览

scala - 返回类型密封时的凸性检查

Scala 可以在密封类型上的模式匹配不详尽时发出警告,但是我们可以检查一个函数在返回类型是密封的情况下是否返回所有情况?例如,考虑以下 ADT

然后f: Foo => String对代数数据类型起作用Foo

发出警告

当返回类型是 ADT 时,是否可以引发类似的未用尽警告,例如在以下实现中f: String => Foo

0 投票
1 回答
194 浏览

haskell - 在函数调用之前附加值时出现“函数中的非详尽模式”错误

我不确定我没有处理什么。假设我有一个函数,它将整数转换为字符串。调用它converter

现在,要将位置整数转换为字符串,我只需调用converter. 要将负整数转换为字符串,我附加-converter调用。

这是我的代码:

当我运行代码并尝试时negOrPosConverter (ActualInt (-200)),出现此错误:

知道为什么吗?

0 投票
2 回答
2489 浏览

haskell - 如何修复“功能中的非详尽模式”

我想将一个列表作为参数传递给一个函数,该函数将该列表的每个元素乘以 3。我必须使用递归(我知道怎么做)和映射函数(有问题)。

正如我在其他帖子中看到的那样,我正在尝试将列表作为参数传递,但它不起作用。

我试过的代码显示:异常:x:函数 mult 中的非详尽模式

0 投票
2 回答
2937 浏览

c# - 使用 Async Await 会避免线程耗尽吗?

.NET Core API我们正在对端点上的以下性能问题进行故障排除:

  1. 端点始终以低于500MS轻微负载的速度返回。
  2. 当我们从 3 个浏览器访问端点时,每秒一个请求,它会逐渐变慢(在添加第三个浏览器进行调用后的一分钟内,响应时间会下降50,000MS或更糟。
  3. 每个额外的浏览器都会添加 API 使用的线程,例如 40 个线程基数,第二个浏览器访问端点导致 52 个线程,第三个峰值达到 70 个,等等。
  4. 加载一个端点时,整个 API 会缓慢返回(所有端点)。这是我与第 3 点一起思考“线程耗尽”的主要原因。

目前的代码如下所示:

我的理论是return Authorized(authDto =>持有一个线程直到它返回,导致线程耗尽。

Authorized是第三方库的一部分,所以我不能轻易测试。想知道这是否看起来像是一个可能的问题/解决方案。

0 投票
2 回答
399 浏览

list - 计算嵌套列表中大于和小于某些值的值的数量

我正在研究一个家庭作业问题的函数,该函数计算列表中值大于v1和小于的值的数量v2。我把一些东西放在一起,但只在特定情况下有效。当我尝试其他东西时,我得到了错误

*** 例外:函数 countInRange 中的非详尽模式

这个函数应该调用 on getInRangegetInRange只返回列表中大于v1和小于的值v2。这是它的样子。

如果我打电话