|
Look at any mathematics text that is older than computers. You will find i, j, k, m, n rampant as indexes for just about any formula you can find. Also, x, y, z are common variables and A, B, C are commonly used as constants.
--
Harvey
|
|
|
|
|
I second the math heritage.
Remember the Capital Sigma sum sign like you see in Excel now?
<a href="http://en.wikipedia.org/wiki/Summation#Capital-sigma_notation">http://en.wikipedia.org/wiki/Summation#Capital-sigma_notation</a>[<a href="http://en.wikipedia.org/wiki/Summation#Capital-sigma_notation" target="_blank" title="New Window">^</a>]
PI is used for products.
<a href="http://en.wikipedia.org/wiki/Multiplication#Capital_Pi_notation">http://en.wikipedia.org/wiki/Multiplication#Capital_Pi_notation</a>[<a href="http://en.wikipedia.org/wiki/Multiplication#Capital_Pi_notation" target="_blank" title="New Window">^</a>]
|
|
|
|
|
As someone already stated, I think it's i for iterator / index. But it also makes it easy to accidentally place a 1 in there e.g. dataset.Tables[1] and not spot a mistake.
Sometimes I'll use r and c if iterating through rows and columns e.g. dataset.tables[0].rows[r][c]
|
|
|
|
|
But I shudder to think why someone would venture right across the keyboard for a '1' instead of an 'i'. Yes, dataset.Tables[1] will work, but why, oh the humanity, why, are you not using the table name?
|
|
|
|
|
It could happen during testing, but I agree that using the table name is better.
|
|
|
|
|
Brady Kelly wrote: But I shudder to think why someone would venture right across the keyboard for a '1' instead of an 'i'.
Bad habits from the type writer era.
http://www.flickr.com/photos/textlad/3564672292/[^]
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
I tend to use Index instead of i (I definitely like verbose identifiers). And when I need several indexes, like in nested loops, I naturally call them Jndex , Kndex , Lndex ... (not kidding).
I have not yet come to the point that I use Number and Mumber for counts.
|
|
|
|
|
If it wasn't for our coding standard, I would employ index, jndex... today. I like that idea.
Matt
|
|
|
|
|
You can use it undercover by means of a macro #define i index
|
|
|
|
|
Why not just skip to "spa"
|
|
|
|
|
i am using 'i' and 'j' for iterating 2D arrays because 'i' and 'j' mean x and y in Cartesian coordinates.
http://butterfly.blog.ir[^]
|
|
|
|
|
Don't they mean 'horizontal' and 'vertical' ?
|
|
|
|
|
maybe but I don't think so.
horizontal -> h not 'i'
&
vertical ->v not 'j'
the 'i' and 'j' are symbols for horizontal and vertical vectors.
|
|
|
|
|
probably i -> row and j -> column then
|
|
|
|
|
Hmmmmm...
|
|
|
|
|
I think you are right. If not otherwise defined FORTRAN would default to integer variables whose names started with "I" through "l" (ell) I believe. Not too sure about the ending letter as all *good* programmers defined their variables.
After years of programming I still use "t" for temporary variables (like creating a value for the debugger to see) and "t.t" for file names for the same sort of thing - temporary names while developing. This comes from the old TRS80 system.
Old habits die hard, eh?
|
|
|
|
|
|
WPerkins wrote: If not otherwise defined FORTRAN would default to integer variables whose names started with "I" through "l" (ell) I believe...
Right, and this spawned the expression "God is real (unless declared integer)".
--
Harvey
|
|
|
|
|
I just asked Him, he said "Don't Fret It, Dude".
Amazing how much hold over there is. IBM PCs in the mid 1980s had screens that were 25 rows by 80 columns... same dim as punch cards.
I wonder how much hold over we've gotten from APL and ADA - even those of us who never wrote any APL or ADA.
Topic for another thread perhaps.
I am currently working on a big project in Delphi 7 - circa 2005 code. I thought Pascal had died about the same time as Milli Vanilli... guess not.
Disco rocks, by the way.
|
|
|
|
|
I always use index and sometimes preppend it with the object or value i am indexing. It leads to a bit more verbose code but it is a hell of a lot easier to understand. Just my opinion.
|
|
|
|
|
Yes, it started in FORTRAN and leads to the following joke:
God is real unless declared integer
At least now you have the context so you can see the humor
|
|
|
|
|
Sorry, I still don't see the humour!
(Sound of tumbleweed blowing)
|
|
|
|
|
Since I, j, k, l are int by default, a variable named God would, by default, be a 'real' number - ie, floating point. You'd have to declare the variable God to be an integer in order for it to be taken that way.
Yes, this is probably a good candidate for the most delayed response ever.
|
|
|
|
|
mc42 wrote: Yes, this is probably a good candidate for the most delayed response ever.
It did take me a while to get the context there. Thanks for explaining.
It does tickle me that an Imaginary being defaults to Real, while i is definitely not imaginary. Mathematicians would shudder.
(Edited for grammar)
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
In my mind, it was because of FORTRAN. Back in the day, we didn't have all that many languages to choose from and most of us wrote in 360 assembler, FORTRAN, or COBOL. As others have said, while FORTRAN did have typing, variables starting with i-n were defaulted to integers so we just used i - followed by j, k, l in nested loops - for simplicity.
We also used foo, foobar, and jane for "temp" variables. foo and foobar were common for IBM programmers and jane was common in DEC code.
|
|
|
|