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