On 26 December 2011 14:56, Ralf Gommers <ralf.gommers@googlemail.com> wrote:
On Mon, Dec 26, 2011 at 8:50 PM, <josef.pktd@gmail.com> wrote:
I have a hard time thinking through empty 2-dim arrays, and don't know what rules should apply. However, in my code I might want to catch these cases rather early than late and then having to work my way backwards to find out where the content disappeared.
Same here. Almost always, my empty arrays are either due to bugs or they signal that I do need to special-case something. Silent passing through of empty arrays to all numpy functions is not what I would want.
I find it quite annoying to treat the empty set with special deference. "All of my great-grandkids live in Antarctica" should be true for me (I'm only 30 years old). If you decide that is not true for me, it leads to a bunch of other logical annoyances up there The rule that shouldn't be special cased is what I described: x[idx1, idx2] should be a valid construction if it's true that all elements of idx1 and idx2 are integers in the correct range. The sizes of the empty matrices are also somewhat obvious. Special-casing vacuous truth makes me write annoying special cases. Octave doesn't error out for those special cases, and I think it's a good thing it doesn't. It's logically consistent. - Jordi G. H.