Я пытаюсь написать свою собственную функцию and
в Haskell. Это выглядит так:
and' :: [Bool] -> Bool
and' (x:xs) = x && and' xs
Когда я использую and' [True, True, True]
, это дает мне исключение:
*** Exception: 6.hs:27:1-26: Non-exhaustive patterns in function and'
Я понял, что добавление: and' _ = True
решает мою проблему, но на самом деле почемуЯ должен добавить эту строку? Если мой образ мышления верен, функция должна вернуть мне True && True && True
, и когда я использую эту комбинацию в ghci, она возвращает True
. Не могли бы вы объяснить мне это, пожалуйста? Есть ли способ увидеть реализацию функции and
в ghci?