Go backward to
Parameter Copy Rule
Go up to
Top
Go forward to
Numeral and Command Parameters
Parameter Substitution
Copy rule for sequential declarations
define
I=U; D
=>
define
I=U, [U/I]D
Transformation sequence:
=>
var
A
:
newint
; (
fun
F
= @
A
+1,
fun
G
= [@
A
+1/
F
](
lambda
A
:
intexp
.
A
+
F
))
in
...
=>
var
A
:
newint
; (
fun
F
= @
A
+1,
fun
G
= (
lambda
A
:
intexp
.
A
+(@
A
+1)))
in
...
Rename locally defined identifiers:
=>
var
A
:
newint
; (
fun
F
= @
A
+1,
fun
G
= [@
A
+1/
F
](
lambda
B
:
intexp
.
B
+
F
))
in
...
=>
var
A
:
newint
; (
fun
F
= @
A
+1,
fun
G
= (
lambda
B
:
intexp
.
B
+(@
A
+1)))
in
...
Author:
Wolfgang Schreiner
Last Modification: May 7, 1998