On Mon, Dec 19, 2011 at 1:01 PM, Ethan Furman
Nathan Rice wrote:
[[1, 2], [3, 4], [5, 6]] could serve as an alternate example of why you can't directly map child methods with the same names.
If you have to change the names, doesn't that negate the ability of "a reliable method to make functions operate on both scalar and vector values"?
To clarify... Functions could reliably support both vector and scalar context, by checking that a type contract exists. Because of the name clash between parent and elementwise member methods when dealing with collections of collections (and some other classes), if the type contract provided "broadcast" versions of child methods, they would have to be provided with under an alias, perhaps X -> elementwise_X. I do not think people should be able to be oblivious of when they are calling collection and member methods, that encourages sloppy programming. I like the broadcast feature because it makes it easier to write code in a clear left to right narrative style, and that seems very pythonic to me compared with an "inside-out" style.