标签: haskell fold non-exhaustive-patterns
我被要求制作一个功能类似于foldr,但具有非空列表的函数,其功能如下:foldr1 f [x1,x2...xn] = f x1 (f x2...(f xn-1 xn)...)。
foldr
foldr1 f [x1,x2...xn] = f x1 (f x2...(f xn-1 xn)...)
所以我这样定义它:
foldr1 f [x] = x foldr1 f (x:xs) = f x (foldr1 f xs) foldr1 f _ = undefined
尽管涵盖了所有可能性,但我仍然收到“函数foldr1中的非穷尽模式”错误。我在做什么错了?