[Lowerbounds, Upperbounds]

Algorithms are everywhere.

I find this recent book (sort of available online) by Mark Jason Dominus to be very CS-friendly. The reason: Closures!

The Perl Review: Why did you write Higher Order Perl?

Mark Jason Dominus: [...] But I had a few hidden agenda items as well. The book is about how to use closures, and I think there are too many languages around that have no easy way to use closures. Java, in particular, seems to me to be a giant step back towards the languages of the 1970s.

Two interesting tidbits from the book are:

  • The term memoization was coined in 1968 by Donald Michie.
  • Data marshalling is so named because it was first studied in 1962 by Edward Waite Marshall, then with the General Electric corporation.

In a previous job, I have done a lot of programming that involves data marshalling, now the term finally makes sense!

http://www.qinfo.org/people/nielsen/blog/?p=120

The philosophy underlying the essay is based on a famous quote attributed to Aristotle: “We are what we repeatedly do. Excellence, then, is not an act but a habit.’’ Underlying all our habits are models (often unconscious) of how the world works.

Thanks to Aristotle, and Nielsen. :P