2014-01-02 2 views
-1

Я получил этот кодHaskell Неполный шаблон - ошибка

andAll :: [Bool] -> Bool 
andAll (x:xs) = x && andAll xs 

и когда я запускаю его, он дает мне '*** Exception: worksheet5.hs:80:1-30: Non-exhaustive patterns in function andAll' после некоторых исследований я, кажется, нужно добавить случай для пустого списка. Я не совсем уверен, как это указать, я пробовал andAll [] = [], но это все еще выдавало ошибку.

ответ

5

Образец (x:xs) будет соответствовать последовательности, по крайней мере, с одним элементом. Вам нужно добавить шаблон, чтобы он соответствовал пустой последовательности.

andAll :: [Bool] -> Bool 
andAll (x:xs) = x && andAll xs 
andAll [] = True 
+1

Ahh! просто понял, насколько глупым я был '[]' явно не является результатом Bool. Благодаря! :) – user3105607

+0

Обратите внимание, что ошибка в '[]' не являющаяся 'Bool' была не той же ошибкой, что и вы опубликовали. Обязательно отправляйте вопросы как можно более четко, и включайте фактические сообщения об ошибках. – misterbee

Смежные вопросы