问题标签 [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.
haskell - 函数声明中的非详尽模式
我在实现以下功能时遇到了困难:
编译器抱怨我没有详尽的模式。我努力了
但没有运气!我感谢可以提供的任何帮助,无论是否通用!
haskell - 非详尽的 Haskell 递归
报告:
*Recursion> sumAllDigits [22,33] *** 例外:Recursion.hs:(76,1)-(79,34):函数 sumAllDigits 中的非详尽模式
haskell - 功能跟踪中的非详尽模式'
报告:
跟踪“F[RF][LF][FF]”45.0 (1.0,0.0,0.0) = 例外:LSystems.hs:(95,4)-(101,61):函数跟踪中的非详尽模式'
预期测试用例:
[((-8.742278e-8,2.0),(-1.3113416e-7,3.0),(1.0,0.0,0.0)),((-4.371139e-8,1.0),(-0.7071068,1.7071068),( 1.0,0.0,0.0)),((-4.371139e-8,1.0),(-8.742278e-8,2.0),(1.0,0.0,0.0)),((-4.371139e-8,1.0),( 0.7071067,1.7071068),(1.0,0.0,0.0)),((0.0,0.0),(-4.371139e-8,1.0),(1.0,0.0,0.0))]
haskell - Haskell:非穷举模式 - 检查列表是否升序
我不知道为什么我的功能不起作用。我浏览了所有关于非详尽功能的帖子,但据我所知,我的功能满足了所有可能的选择。
结果:
它适用于一对,但如果这对不上升,则无效。当我遵循我的代码时,它应该只是返回 False。
list - 如何在 Haskell 中检测列表的结尾?
我正在编写一个使用特定公式来计算 2 个列表的递归函数。但我会简化函数,以便您了解我遇到的问题,因为这里的重点是检测列表的 []。
所以我有以下代码:
我现在的输出
以及我希望拥有的输出
我错过了什么?还是我写的太多了?
list - Haskell - 使用列表的函数出现“非详尽模式”错误
我正在尝试在 haskell 中创建一个函数,以了解列表列表中的所有元素是否具有相同的长度。(我在以前的帖子中搜索过答案,但没有一个有效)。
问题是它不起作用:
我真的不明白问题出在哪里。它处理参数是空列表和不是空列表的情况。我错了吗 ?我错过了什么 ?
谢谢你的帮助 :)
string - 在haskell中实现一个字符串的字符重复特定时间的程序
这是我作业中的一个问题,因此很可能会受到赞赏。
这个学期我正在学习Haskell,我的第一个作业要求我编写一个函数,该函数输入 2 个字符串 (string1
和 string2
) 并返回一个由第一个字符串的(重复的)字符组成的字符串,string1
直到一个与创建的长度相同的字符串string2
。
我只被允许使用Prelude功能length
。
例如:将 asstring1
"Key"
和我的名字"Ahmed"
作为string2
函数应该返回"KeyKe"
。
这是我到目前为止所得到的:
我没有直接给它两个字符串,而是给它一个整数值(因为我可以稍后用它代替长度),但这给了我一个运行时错误:
我认为这可能与我的列表用完并变成一个空列表(?)有关。
一点帮助将不胜感激。
haskell - Haskell 函数中的非穷举模式与“否则”
我正在使用以下功能:
它适用于我能想到的任何示例,但是当我从较大项目中的其他函数调用它时,在某些情况下我会遇到异常:
上面的定义有问题吗?它是否缺少某些案例?我认为otherwise
可以处理任何不属于以前案例的事情。
haskell - 非穷举模式
鉴于我有以下代码:
resolveAscendingInterval 工作正常,但是当我运行 resolveDescendingInterval 时,我得到:
函数 resolveDescendingInterval 中的非详尽模式
他们的代码和逻辑非常相似,所以我不知道出了什么问题
另一件事:有没有另一种方法可以在没有递归的情况下实现这种行为?
haskell - `function [] _ = ...; 时模式匹配失败 function _ [] = ...` 语法被省略
尽管disjoint
在其保护条件中耗尽了所有可能的模式,但 HaskellPatternMatchFail
在运行它时给了我一个错误。
但是,如果我写它没有问题:
如果没有这些额外的行,我会得到一个PatternMatchFail
. 如果我要推断在第一种情况下 Haskell 的问题是什么,那就是如果给定一个输入参数的空列表,它的预期参数l@(x:xs) r@(y:ys)
已经在调用模式匹配,在这种情况下是非详尽的一个空列表,PatternMatchFail
尽管有一个检查完全相同的条件的保护条件,但结果是 a 。它永远无法达到保护条件,因为它首先需要匹配“参数条件”。
然而,那些额外的两行重复性让我有点反感,我只是想知道是否有更简洁的方法来解决这个问题。更一般地说:如果我要使用三个或更多列表作为参数,我绝对不想再写出不相交的 3 次以上来检查空条件,那么在这种情况下我该怎么办?感谢您的时间。