我被要求制作一个类似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 中的非详尽模式”错误。我究竟做错了什么?
我被要求制作一个类似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 中的非详尽模式”错误。我究竟做错了什么?