Signed word lengths and indexes
Don
nospam at nospam.com
Tue Jun 15 10:54:56 PDT 2010
Steven Schveighoffer wrote:
> On Tue, 15 Jun 2010 11:28:43 -0400, BCS <none at anon.com> wrote:
>
>> Hello Steven,
>>
>>> On Tue, 15 Jun 2010 08:49:56 -0400, Pelle <pelle.mansson at gmail.com>
>>> wrote:
>>>
>>>> On 06/15/2010 02:10 PM, Steven Schveighoffer wrote:
>>>>
>>>>> On Tue, 15 Jun 2010 07:30:52 -0400, bearophile
>>>>> <bearophileHUGS at lycos.com> wrote:
>>>>>> Steven Schveighoffer:
>>>>>>
>>>>>>> i is unsigned, and therefore can never be less than 0. It's
>>>>>>> actually a clever way to do it that I've never thought of.
>>>>>>>
>>>>>> Clever code is bad. It must be minimized. In some rare situations
>>>>>> it becomes useful, but its usage must be seen as a failure of the
>>>>>> programmer, that was unable to write not-clever code that does the
>>>>>> same things.
>>>>>>
>>>>> Clever code is bad? What are you smoking? In my opinion, clever code
>>>>> that is clear and concise should always be favored over code that is
>>>>> unnecessarily verbose.
>>>>>
>>>> Clever code is bad because you have to think a couple of times more
>>>> every time you see it.
>>>>
>>> This is a temporary problem. Once you get used to any particular
>>> coding trick, you understand it better.
>>>
>>
>> People cutting you off on the road is a temporary problem, once you
>> tell everyone off, they will understand better.
>>
>> Your statement might have merit if the "you" in it were the specific
>> "you" rather than the universal "you".
>
> In fact, I meant the specific you. Once a person gets used to any
> particular coding trick, that person will understand it better when the
> trick is encountered again. This is a basic principle of learning.
>
>>
>>>> Also, it looks wrong.
>>>>
>>> Why? i is unsigned, therefore >= 0, and must be < length. That seems
>>> reasonable and correct to me.
>>>
>>
>> It looks wrong because i only gets smaller. People are hardwired to
>> think about continues number system, not modulo number system (explain
>> that 0 - 1 = -1 to a 6 year old; easy, explain that 0 - 1 = 2^32-1 to
>> them, good luck). Yes we can be trained to use such system, but most
>> people still wont think that way reflexively.
>
> It's really easy to explain. Use an odometer as an example. And we
> don't have to be specific in this case, you can substitue 'some very
> large number' for '2^32 - 1'.
>
> Besides, why does a 6-year old have to understand a for loop? D doesn't
> cater to people who can't grasp the modulo arithmetic concept.
>
> I think that this discussion is becoming pointless. Let's just accept
> that we don't have to review code for one another, and we like it that
> way :)
>
> -Steve
I would say, if you have trouble understanding that trick, you should
NOT be using unsigned arithmetic EVER. And I agree that most people have
trouble with it.
More information about the Digitalmars-d
mailing list