2016-10-05 86 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