Ленивость в языке

Я понимаю, что если бы у меня был оператор c = a AND b, если бы a было false, то компилятор не стал бы оценивать b, он бы знал результат, потому что a уже false.

Но что, если бы у меня была функция, которая была бы рекурсивной и объединяла рекурсивные вызовы с помощью И.

So myfunc input1 input2 = and[myfunc(input1),myfunc(input2)]

если функция, возвращаемая из любой точки в приведенном выше дереве рекурсивных вызовов функций, вернула ложь, будут ли рекурсивные вызовы функций завершаться и значение false будет просто оценено в исходной точке вызова?

Другими словами, будет ли использоваться ленивая оценка выше?

5
задан user997112 15 July 2012 в 00:31
поделиться