My grandmother was immutable

As I move into my twilight years (mid 30s) I start to have flashbacks surrounding various aspects of my youth. This very morn', for example, I was whisked back to an endless summer evening circa the mid 80s... The scene is composed of; a large christmas tree, me, my grandmother, and our TV. Connected to the TV is my first ever computer: a SpectraVideo 318 (sold mostly in Japan and Sweden, apparently - but powered by the famous Zilog Z-80 chip [as seen to this day in my washing machine]).

Curious as to the purpose of these wondrous new consumer devices, my grandmother asked for a demonstration of how it worked. She was a teacher, I think (as a kid you don't really probe the lives of those around you) and I felt like this was a mini test, so I was determined to impress. Naturally I fired up BASIC to give her a taste of why she herself might want such a machine, and I wrote a small program to plot a sprite on the screen.


I could tell she hadn't quite grasped the awesomeness of it, so I proceeded to animate it. The animation code went something (but nothing) like this:

100 LET X = 0
110 PUT SPRITE 1, X, 100
120 LET X = X + 1
130 GOTO 110

I'd memorised the code from the user manual, or from another game, or something... so I was very unprepared for her sole question regarding the demonstration:

How can X possibly be X plus one?

I was confused.

Not about her question (I had no idea what she was talking about). I was confused because she wasn't in awe of the HUGE SMILEY FACE that I had just created and then made FLY RIGHT ACROSS THE SCREEN.

But she persisted with her interrogation of the single line of code, buried inside the very first program she had ever seen: how could "X" be "X plus one"? It just didn't make sense to her. If X is 0 then X is 0.

<End flashback> I don't remember much about my grandmother, but this morning I was writing a piece of functional JavaScript and I happend to need the let keyword. As I typed it, I was transported back in time to that strange moment - I don't even know why it was locked in my head.

At any rate, I'm now a bit miffed that it took me 20-odd years to get up to speed with functional programming, but my grandma - who had never touched a computer in her life - understood immutability instantly and intrinsically.

See also Conventional Interfaces: map/reduce and friends.
See also Reducing map: jQuery vs jQuery vs JavaScript