University of Washington • CSE583 • D. Notkin © 2000
86
More strictness
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 isn’t needed nor done, so it’s fine.
lThis function is considered to be strict in its first argument but non-strict in its second argument