34得票2回答
在Haskell中,为什么非穷尽模式不是编译时错误?

这是关于 Why am I getting "Non-exhaustive patterns in function..." when I invoke my Haskell substring function? 的后续问题。 我知道使用-Wall选项,GHC可以警告非...

33得票2回答
非穷尽模式在函数中的运用

我遇到了这段代码的问题,它应该计算一个字符串中相同字母的最长子串,但是出现了错误:*** Exception: test.hs:(15,0)-(21,17): Non-exhaustive patterns in function countLongest' 我知道这是错误的类型问题,但我不...

29得票3回答
为什么 GHC 报错“非全面模式匹配”?

我在使用 GHC(使用 -Wall 标志)编译以下代码时:module Main where data Tree a = EmptyTree | Node a (Tree a) (Tree a) deriving (Show) insert :: (Ord a) => a ->...

12得票2回答
如何系统地避免在Scala中出现不安全的模式匹配?

考虑以下错误的函数:def sum (list : Seq[Int]) : Int = list match { case Nil => 0 case head :: tail => head + sum(tail) } 这个函数最初应该使用 List[Int],但被重构为...

11得票2回答
Haskell: 非穷尽模式

我正在为明天的测试训练,以完成我的函数式编程入门课程,但有一件事情我不理解。 每当我有这样一个程序:test [] = [] test (x:xs) = test (xs) 他所做的是从列表中取出第一个元素并继续处理其余部分。当只剩下一个元素时,xs 应该是 [],这会触发 test [] ...

10得票1回答
当我调用我的Haskell子字符串函数时,为什么会出现“函数中的非穷尽模式”?

我正在阅读《The Haskell Road to Logic, Maths and Programming》这本书(来自stackoverflow)。目前为止,我仅在第一章中间部分,但我很喜欢它,并打算继续阅读。我已经阅读完1.5节“玩Haskell游戏”,其中“包含了许多进一步的示例,让你...

8得票1回答
GHC抱怨非穷尽模式,这些模式由类型检查器强制执行。

我有以下代码。 {-# LANGUAGE DataKinds, GADTs, TypeOperators #-} data Vect v a where Nil :: Vect '[] a Vec :: a -> Vect v a -> Vect (() ': ...