Ошибка неисчерпывающих паттернов при определении варианта фолдера

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

0 ответов

Другие вопросы по тегам