Go backward to
Copy Rule
Go up to
Top
Go forward to
Parameter Substitution
Parameter Copy Rule
Example:
var
A
:
newint
;
proc
P
=
lambda
X
:
intexp
.
A
:=
X
in call
P
(@
A
+1)
var
A
:
newint in
(
lambda
X
:
intexp
.
A
:=
X
)(@
A
+1)
Rule for binding @
A
+1 to
X
:
(
lambda
I:
theta
.U)V
=>
[V/I]U
var
A
:
newint in
[@
A
+1/
X
](
A
:=
X
)
=
var
A
:
newint in
A
:=@
A
+1
Dangerous: substitution into lambda abstractions.
[V/I](
lambda
I'.U)
var
A
:
newint
;
fun
F
= @
A
+1;
fun
G
= (
lambda
A
:
intexp
.
A
+
F
)
in
...
Author:
Wolfgang Schreiner
Last Modification: May 7, 1998