Быстрый вопрос, который беспокоил меня в последнее время. Выполняет ли Haskell все проверки эквивалентности в функции, которая возвращает логическое значение, даже если оно возвращает ложное значение?
Например
f a b = ((a+b) == 2) && ((a*b) == 2)
Если первый тест вернет false, будет ли он выполнять второй тест после &&
? Или Haskell достаточно ленив, чтобы не делать этого и двигаться дальше?