<div dir="ltr"><div class="gmail_quote">On Sat Feb 07 2015 at 10:37:39 PM Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Set union is, but sets lack order. Once you add order to a set, it<br>
becomes more like a list</blockquote><div><br></div><div>Then wouldn't adding .extend() and + make more sense anyway? List-like operations should look like the list-like operations we already have.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">so the union of x and y might not be <span style="font-size:13.1999998092651px">identical to the union of y and x</span></blockquote><div><br></div><div>Well, not if you define union to be non-commutative, no—but that's what we're discussing.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span style="font-size:13.1999998092651px">They'd be the same modulo order, so </span><span style="font-size:13.1999998092651px">it's not breaking the concept of set union.</span></blockquote><div><br></div><div>Sure it is: operations are supposed to yield things that make sense. Set union yields the set of elements contained in any of its operands; even if its operands have orderings that make sense, the ordering between sets might be partial or inconsistent, so the result cannot. So the existing definition of set union can never produce a correct ordering.</div><div><br></div><div>I can't see why it would be preferable to redefine union as concatenation rather than just supporting explicit concatenation. Apart from feeling more mathematically sound to me, it's better at documenting intention: which method (or operator) you choose reflects whether you're interested in the order of the result or just its contents.</div><div><br></div><div>Ed Kellett</div></div></div>