lfun cand (b1, b2) = if b1 then b2 else false
lcand(n>0,t/n>0.5) with n=2 and t=0.8
Eagerly,
n>0 evaluates to true, t/n>0.5 evaluates to false, and
therefore the function evaluates to false
Normal-order
also evaluates to false.
l But what
if n=0
Eagerly,
n>0 evaluates to false but t/n>0.5 fails due to division-by-zero;
so the function call fails.
But with
normal-order, the division isnt needed nor done, so its
fine.
lThis function is considered to be strict in its first argument but
non-strict in its second argument