The most widely and commercially used languages today are largely based on the imperative and structured programming paradigms and many have a direct and strong roots in the C language of the early seventies. Even though there seems to have been little fundamental change in main stream programming languages over the last 40 years, there have been subtle shifts in usage patterns, even for things as simple and fundamentally low-level as doing some things repeatedly or in a loop. As a perfectly and randomly useless example to illustrate the evolution of looping, we are creating a list of squared numbers from the positive members of an input list. In C or any similar imperative language of its time, the most basic way to do something like this would be something like: out_size = 0; for (i = 0; i < in_size; i++) { if (a[i] > 0) { b[out_size++] = a[i] * a[i]; } } Languages like C++ and Java, which includes a standard library of higher level collection data types,...