Argh, my mail client just tricked me. Anyway: The main reason is that I see no mathematical obvious way of iterating through all vectors of the integers. The (arbitrarily) decided way in the patch seems usable in only very few cases (and it does not even contain vectors with any negative elements). If one would ever want to have such an iterator, it seems to me that it would almost always be vectors of some length that was the purpose.
A secondary reason is generality: If it is decided to keep this iterator, I think a similar iterator should be implemented for all finite or countably infinite vector spaces (even modules). In the case of finite rings as basis, it might actually make good sense; especially, if one specifies the length of the vector in the iterator. Thirdly, with an iterator, the IntegerVectors supports the syntax {{{ v = IntegerVectors()[25] }}} The implementation suggested in the patch would give calls like this something like quadratic running time. I think that the syntax should then explicitly be banned (by implementing a faulting __getitem__ function?) or implemented as calculating the vector directly in some way. The last suggestion again seems to be hard with the current implementation. I have updated the trac to "needs work" and referred to this discussion. Cheers, Johan -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org