Kenny Tilton <ktilton@nyc.rr.com> wrote:
+---------------
| William Bland wrote:
| > Variables are awful too. I keep seeing references to variables
| > and having to find their definitions and read the comments to find
| > out what they do. I think I'm going to ban them as well.
...
| Good for you, though, on pointing out the hazards of variables.
| I missed that one. From now on it's all literals all the time for me.
+---------------
Actually, I think Bill Wulf first pointed out that one, in a classic
little CACM(?) article, "Global Variable Considered Harmful" [published
after and in the style o fDijkstra's "GOTO Considered Harmful", yes],
in which he pointed out that no matter how "structured" your code was,
a single global variable and a single loop with a single CASE statement
could implement an arbitrary spaghetti nest of GOTOs. That is, there's a
direct and simple mapping between an arbitrarily-complex TAGBODY and this:
(let ((state 'start))
(loop
(case state
...{lots of cases that (SETF state {something})}...)))
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607