Re: List processing
- To: mathgroup at smc.vnet.net
- Subject: [mg37232] Re: List processing
- From: BobHanlon at aol.com
- Date: Thu, 17 Oct 2002 00:09:37 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 10/16/2002 3:50:27 PM, leary at paradise.net.nz writes:
>This problem can be solved by conventional programming, but I wonder if
>
>there is an elegant Mathematica solution ?
>
>A list contains pairs of values, with each pair representing the lower
>and
>upper edge of a sub-range. Some of the sub-ranges partially overlap, some
>
>fully overlap, others don't overlap at all. The problem is to produce
>a
>second list that contains the overall upper and lower edges of the
>overlapping sub-ranges.
>
>A simple example : {{100,200},{150,250},{120,270},{300,400}} would result
>
>in {{100,270},{300,400}}.
>
>In the real case, the input list has several hundred elements and the
>output list typically has five elements.
>
>I have a working solution based on loops, but there must be a more elegant
>
>one. I would be very grateful for any suggestions.
>
lst = {{100, 200}, {150, 250}, {120, 270}, {300, 400}};
List @@ Union @@ Interval /@ lst
{{100, 270}, {300, 400}}
List @@ Interval[Sequence @@ lst]
{{100, 270}, {300, 400}}
Bob Hanlon