Hacker News new | past | comments | ask | show | jobs | submit login

What you've said isn't surprising.

The problem isn't whether 0 or 1 are "right" or not, it's the inconsistency. It makes transcribing something from a textbook harder, because the indexing logic in a textbook algorithm can get quite intricate. It's even worse if they use slices like M[i:j,m:n].

Indexing from 1 is the standard in many areas, going back many decades. SWEs have adopted a different convention.




(Obligatory) There are only 2 hard problems in computer science: cache invalidation, naming things, and off-by-one errors


may You concurrency forgotten have.


It just printed out in your comment a few hours after I thought I invoked it.


but this depends a lot on the particular formula. For example, if you use discrete Furier transforms, all formulas are natural with 0-indexing, but weird with 1-indexing. In general, when the indices of an array are to be interpreted as modulo N, you want them to be 0, 1, ..., N-1

It is inevitable to have to use both conventions if you do varied math stuff. Thus, you will never be happy.


The pragmatic solution for transcribing is probably to make some functions `array_index` and `array_slice` that automatically convert between the two conventions. I think Julia offers another way: It lets you choose between them.


I prefer OPTION BASE {0, 1} :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: