<br><br><div class="gmail_quote">On Thu, Feb 21, 2013 at 5:50 AM, Yuval Greenfield <span dir="ltr"><<a href="mailto:ubershmekel@gmail.com" target="_blank">ubershmekel@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div class="im">On Thu, Feb 21, 2013 at 3:35 PM, Wolfgang Maier <span dir="ltr"><<a href="mailto:wolfgang.maier@biologie.uni-freiburg.de" target="_blank">wolfgang.maier@biologie.uni-freiburg.de</a>></span> wrote:<br>

</div><div class="gmail_extra">

<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">a = range(1,10)<br>


b = range(5,12)<br>
intersect = a & b     # equivalent to intersect = range(5,10)<br>
merge = a | b         # equivalent to merge = range(1,12)<br>
<br>
</blockquote></div></div></div></div></blockquote><div>... </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">

<div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
this whole idea is reminiscent, of course, of what's implemented for sets<br>
already, so like there you could think of<br>
intersect = a & b as shorthand for intersect = a.intersection(b)<br>
<br></blockquote></div><div>I think each operation you implement can have a lot of different bikeshed details. Since these are all very simple to begin with, it's better to not burden the language and just let users implement whatever it is they need.</div>



<div><br></div><div><span style="font-family:arial,helvetica,sans-serif"></span></div></div></div></div></blockquote><div><br></div><div>Ignoring performance issues, imagine instead a sorted set class that you could add ranges to (or remove them). Well, actually it's trivial to convert a range to a set; the interesting problem is performance. You could save the range parts unexpanded so you could add huge ranges and you could also support infinite ranges (itertools.count).</div>

<div><br></div><div>I suggest this because once you consider doing the first set of operations, like r1 & r2, it's quite natural for someone to want </div><div><br></div><div>some_non_unlucky_integers = range(100) - [13]</div>

<div><br></div><div>The idea of a sorted set class is, of course, not original. See for example <a href="http://stutzbachenterprises.com/blist/sortedset.html">http://stutzbachenterprises.com/blist/sortedset.html</a>. If SortedSet isn't in the stdlib, I can't imagine this enhancement being either.</div>

<div><br></div><div>--- Bruce</div><div><span style="font-family:arial,helvetica,sans-serif">Latest blog post: Alice's Puzzle Page </span><a href="http://www.vroospeak.com/" target="_blank" style="font-family:arial,helvetica,sans-serif">http://www.vroospeak.com</a></div>

</div><div><div><font face="arial, helvetica, sans-serif"><br></font></div></div>