Question: Exercise 3 Here again is the example used to show the difference between scoping with blocks and dynamic scoping: fun g x = let val

Exercise 3 Here again is the example used to show the difference between scoping with blocks and dynamic scoping:

fun g x =

let

val inc = 1;

fun f y = y + inc;

fun h z =

let

val inc = 2;

in

f z

end;

in

h x

end;

Copy it and then annotate it as follows:

a. Draw a circle around every block, and number the blocks.

b. Identify each definition of a name.

c. For each definition, describe its scope in terms of your block numbers.

d. For each occurrence of a name ( other than a definition of that name ), show which definition is used to blind it. Check that this agrees with your scopes.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!