The Copy Rule for Blocks
- Copy rule for lazy evaluated abstractions also applies when abstractions
are locally defined within a block:
- begin define I1=U1, ..., define In=Un
in V end
=> [U1/I1, ..., Un/In]V
- Example:
- begin const A=2, const B=3
in begin fun F(X:intexp) =
X+A+B
in begin const A=4 in F(A)+B
end
end
end
- => ...
- =>(lambdaX. X+2+3)(4)+3
Does not apply to eagerly evaluated abstractions!
Author: Wolfgang Schreiner
Last Modification: May 14, 1998