Python Module Exposure
Jacob Page
apoco at cox.net
Sun Jul 10 15:32:17 EDT 2005
George Sakkis wrote:
> "Jacob Page" <apoco at cox.net> wrote:
>
>>If the union of two integers yielded a set of integers, then
>>it'd make more since for the union of two Intervals to yield an
>>IntervalSet.
>
> AFAIK union is defined over sets, not numbers, so I'm not sure what you
> mean by the "union of two integers". What I'm saying is that while the
> union of two intervals is always defined (since intervals are sets),
> the result set is not guaranteed to be an interval. More specifically,
> the result is an interval if and only if the intervals overlap, e.g.
> (2,4] | [3,7] = (2,7]
> but
> (2,4] | [5,7] = { (2,4], [5,7] }
> That is, the set of intervals is not closed under union. OTOH, the set
> of intervals _is_ closed under intersection; intersecting two
> non-overlapping intervals gives the empty interval.
OK, you've convinced me now to support and, or, and xor between every
combination of Intervals and IntervalSets, Intervals and IntervalSets,
and IntervalSets and Intervals. However, I'm not sure I like the idea
of an operation generating either one type or another. Thus, I'll have
| and ^ operations between Intervals always return an IntervalSet
instead of returning either an IntervalSet or an Interval. & will
return an Interval. I suppose that means I should just have + do a
union and - return an IntervalSet. It will just have to be documented
which types are to be expected for the return values depending on the
operands.
More information about the Python-list
mailing list