Ошибка неисчерпывающих паттернов при определении варианта фолдера
Меня попросили сделать функцию, которая работает как 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", несмотря на то, что закрывает все возможности. Что я делаю неправильно?