Instructor:
How much of an expression should be evaluated when computing a result?
Strict constructs
+
-
<
<=
|
&
f(x,y)
Non-strict constructs
e1 && e2
e1
e2
e1 || e2
if e1 then e2 else e3
e3
Conditional expression if e1 then e2 else e3
true
for i <- 0 to 10 do print(i) if i % 2 == 0 then println(": even") else println(": odd")end for
return 1
return n*...
int fact (int n) { if (n <= 1) { return 1; } else { return n * fact (n - 1); }}
int fact (int n) { return (n <= 1) ? 1 : n * fact (n - 1);}
def f(b: Boolean, t: Unit, f: Unit) : Unit = if b then t else ffor i <- 0 to 10 do print(i) f(i % 2 == 0, println(": even"), println(": odd"))end for
f
def f(b: Boolean, t: => Unit, f: => Unit) : Unit = if b then t else ffor i <- 0 to 10 do print(i) f(i % 2 == 0, println(": even"), println(": odd"))end for