Chapter 3, Modularity, Objects, and State

Exercise 3.40

We have two procedures - one is doing square and other is doing cube - so lets call them square and cube.

In square, we can have following subparts: square-read-x-1st-time, square-read-x-2nd-time, square-compute, square-assign - lets call them a, b, c, d respectively.

In cube, we can have following subparts: cube-read-x-1st-time, cube-read-x-2nd-time, cube-read-x-3rd-time, cube-compute, cube-assign - lets calls them i, j, k, l, m.

Now, (a, b, c, d) can be interleaved/mixed with (i, j, k, l, m) - which gives too many combinations.

I will do few of these and skip the rest :)

(a,b,c,d,i,j,k,l,m) - 10,00,000

(i,j,k,l,m,a,b,c,d) - 10,00,000

(a,i,j,k,l,m,b,c,d) - 10,000

(i,a,b,c,d,j,k,l,m) - 100,000

(a,b,c,i,j,k,l,m,d) - 100

(i,j,k,l,a,b,c,d,m** - 1000

After serialization

Only one possibility: 10,00,000