问题标签 [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 回答
1107 浏览

dictionary - 通过使用 Haskell 中的 Data.Map 获取键值来查找键

几周前我刚开始使用 Haskell,我缺乏想象力来解决这种情况下的功能。

所以我试图在用 Haskell 实现的图中找到一个顶点的前身。

我的图表:

功能successors

我目前正在尝试解决的功能:

我需要找到一种通过获取这些顶点的值(后继)来获取键(顶点)的方法。例如 :

但是当我运行那条线时,我 在 lambda 中得到了非详尽的模式

那是什么,我该如何解决?谢谢!

  • 编辑:没关系,我纠正了它,但我还是不太明白哈哈
0 投票
1 回答
458 浏览

haskell - 功能中的非详尽模式。创建玫瑰树 Haskell

我正在尝试编写一个函数,将玫瑰树列表与它们的父节点组合在一起,这些父节点是给定玫瑰树的根节点的最高值。例如;

应该返回Rose 4 [Rose 1 [Rose 1 [], Rose 2 []], Rose 3 [], Rose 4 [Rose 10 []]]

我收到一个错误“函数rosesToRose 中的非详尽模式”,我不确定是什么原因造成的。尝试将空列表作为输入进行匹配并得到相同的错误。任何建议,将不胜感激。

我的代码:

0 投票
1 回答
75 浏览

haskell - 有效模式的模式匹配失败

我有以下代码:

runhaskell为了测试,我使用命令运行我的文件,并HELLO PEOPLE在程序运行后作为用户输入输入。我期待输出:HELLE POEPLO或类似的东西,因为我的程序仅用于移动元音。我的程序运行良好,直到它尝试运行该stringTogether方法。具体来说,问题在于模式匹配,我有一个数组:

以及 (Just c:cs) vowels我希望它匹配但不知何故它似乎不起作用的模式。当我运行代码并输入时,HELLO WORLD我收到以下错误: 18:1-25: Non-exhaustive patterns in function stringTogether我使用跟踪模块记录了一些内容,并且在输入stringTogether函数之前一切看起来都符合预期

我可能忽略了一些非常明显的事情,但我无法理解为什么模式匹配不起作用,我希望有人能够提供帮助。提前致谢!

0 投票
1 回答
57 浏览

scala - 类型参数规避匹配穷举警告

为什么由密封类型绑定的类型参数似乎不会引发穷举警告

而没有类型参数

发出警告

0 投票
1 回答
251 浏览

haskell - Haskell 数据声明:查找二叉树中叶子的总和

这是一棵二叉树,我正在尝试计算叶子的总和

给出了数据声明。

这是我的代码

当我运行程序 sumLeaves t 时,它表明函数 sumLeaves 中存在非穷举模式。我认为问题是程序无法计算,当有一个节点有两个叶子时,但我不知道如何解决它。非常感谢您的帮助。

编辑:test1:

测试2:

测试 2 工作正常,但测试 1 给出错误,当我删除 sum() 时,它给出了一个列表 [13,17,30,10] ,这是正确的列表,但是 >sum ( [13,17,30, 10])在程序中工作。我该如何克服它?

0 投票
1 回答
115 浏览

list - 在haskell中切换列表中的每个元素

我必须编写一个函数来切换给定布尔值的列表,例如:

输入 :toggle [True,False,False]

输出:[False,True,True]

这就是我想出的

我不断收到这个错误:

*** Exception: Uebung3.hs:38:1-20: Non-exhaustive patterns in function toggle

这是一个非常基本的问题,我来自 Java,刚刚开始学习 Haskell。

0 投票
2 回答
69 浏览

haskell - Haskell 递归中的非详尽模式

我正在尝试编写一个函数,它可以让我知道列表中每个区域之间的距离。该函数distance将两个区域之间的距离作为Int一个集合数组提供给我,我想遍历整个列表以总结每个区域与其在列表中的追随者之间的距离。

但我得到了

非穷举模式

错误信息。我忽略了什么?该功能distance正在正常工作。

0 投票
3 回答
221 浏览

scala - 高阶部分函数——在哪里放置@unchecked注解?

我有一段代码,我收到来自 Scala 2.13.4 的“匹配可能并不详尽”的警告,我想用注释抑制该警告。@unchecked不幸的是,我所有的插入尝试都@unchecked只是导致了语法错误。

这是原始代码的无情简化版本:

问题:为了抑制警告,我在语法上应该放在@unchecked 调用站点的什么位置?

PS我想压制警告,而不是开始讨论这是否是邪恶的;-)

0 投票
2 回答
480 浏览

haskell - 函数 len 中的非详尽模式

我正在编写这个函数 len,它计算 GHCi 中列表的长度。

我试图用[]作为参数调用该函数,但错误Exception: Non-exhaustive patterns in function len击中了我。我不是已经在函数定义中包含了空列表案例吗?

0 投票
1 回答
139 浏览

haskell - 如何摆脱 Haskell 中的非详尽模式错误?

我对 Haskell 很陌生,所以恐怕我还没有完全理解它是如何工作的。以下方法应该确定矩阵是否是实际矩阵。

例如,isMatrix [[1,2],[3,2]] 应该为真,而 [[1],[3,2]] 应该为假。

现在我收到错误“函数 isMatrix 中的非详尽模式”。我是否缺少某些情况,如果是,我该怎么办?

如果有人可以向我解释,我将不胜感激。

提前致谢!