Re: When is "z" != "z" ?
| From: | tedd | Date: | Tue, 06 Jun 2006 01:35:08 +0000 |
| Subject: | Re: When is "z" != "z" ? | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-237431@lists.php.net to get a copy of this message | ||
At 1:10 PM -0400 6/5/06, Robert Cummings wrote:
>NOOOOO! More must be said!!
>
>a <= z
>b <= z
>c <= z
>-snip-
>yx <= z
>yy <= z
>yz <= z
>za > z
>
>SOOOOOOOOOOOOOOOOooooooooooo, the comparisons stop before we get to aaa
>and so aaa is never reached. za is the last comparison to occur at which
>point the test fails and the loop stops.
>
>Cheers,
>Rob.
Rob:
Okay, I tried to get out of it, but I guess more must be said.
I do understand why the loop stops -- I totally understand the mechanics. After all this, how could
I not? Besides, it's really not that difficult, is it? So, what might you guess I'm really
talking about?
You see, what is failing to be understood here is what I'm addressing, which is basic set
theory. One of the basic foundations for mathematics
If I have a set that is defined as all elements > "whatever" and < "something
else", then you can address the set. You can ask questions about the set, such as what's
the population of the set -- besides itself, does the set have any subsets, and such -- get the
idea?
Now, if you have a set [A] where all elements within are defined as ("a" or greater) and
(less than "z") -- then, believe or not, that set is infinite -- as is the set for
everything > "z".
If you choose, which is the case here, to consider only a subset of [A], then that's fine --
but understand that when you say the sequence is --
a b c ... x y z aa ab ac ... yx yy yz za zb zc ... zy zx zz aaa aab
-- it's not!
But rather, the actual sequence is:
a b c ... x y z aa ab ac ... yx yy yz aaa aab aac... <infinite> z
You simply have chosen to arbitrarily end the sequence at "yz". That's the reason why
"aaa" is less than "z" but not included in the "php-loop" set of (for
i=a to z).
You can't say that "a" and "aaa" are members of a set identified as <
"z" and then step through all the members of that population (an infinite group) and not
include "aaa" -- UNLESS -- you arbitrarily determine an end point for a much smaller
sub-set.
Now, unless, there is something that I don't see, which certainly could be the case, then php
designers could have just as easily ended the loop at "z" and dispensed with this quirk
all together.
Besides, what's the point of having 676 character between a and z? Is there one? I think the
"accepted" number would be closer to 26, don't you think? It just seems more like
common sense to me -- doesn't it to you?
But this is the way it is and I except that -- but as Dirty Harry once said "A man's got
to know his limitations" -- this not only applies to men and programmers, but also for
languages as well.
For example, the Unicode issue was raised during this discussion -- if php doesn't consider the
numeric relationship of characters, then I see a big problem waiting in the wings. Because if
we're having these types of discussions with just considering 00-7F characters, then I can only
guess at what's going to happen when we start considering 000000-FFFFFF code-points.
Now, was that enough said? :-)
Cheers.
tedd
--
------------------------------------------------------------------------------------
http://sperling.com http://ancientstones.com http://earthstones.com