2016-10-05 88 views
0

我试图将0添加到列表的开头。我的模块已成功加载,但是当我尝试使用某些参数的函数时,我获得了Non-exhaustive patterns in function。下面的代码,offset n就是一个整数Haskell - 缺少函数中的模式

extraUnicodeList :: Int->[Int] -> [Int] 
extraUnicodeList n [] = [] 
extraUnicodeList n [a] 
    | (n==0) = [a] 
    | otherwise = replicate (offset n) 0 ++ [a] 

这种情况下,我在人仍下落不明?

回答

0

您已经介绍了有0个元素([])和有一个元素([a])的情况。你错过了其他所有情况。

要匹配任意大小的非空列表,可以使用与任何非空列表匹配的模式x:xs,将其第一个元素绑定到x,将其余元素绑定到xs

[x]只匹配单元素列表并将其单个元素绑定到x