Flavio S. Glock wrote:
>
> Reinhold May wrote:
> >
> > This is probably mainly going to Flavio:
> >
> > I've tried a different approach to solving my problem described
> > in earlier posts and this time I have the following issue:
> >
> > If I do an intersection (whether with iterator->next($span)
> > or $spanset->intersection($span) or even
> > $spanset->as_list($span)), I get a SpanSet that can have,
> > depending on where the intersection span starts and ends, a cut
> > first span and a cut last span:
> >
> > |----| |----| |----| |----| # Source SpanSet
> > |----------------| # intersection Span
> >
> > |--| |----| |--| # Resulting SpanSet
> >
> > what I actually need is a set of unmodified spans intersected by
> > that span:
> >
> > |----| |----| |----| # Wanted resulting SpanSet
> >
> > I do understand that this behaviour is wanted by some
> > applications but in mine, I can't use the resulting spanset.
> >
> > One solution to my problem would be to check the first and
> > the last Span in my resulting SpanSet for its length and correct
> > it when necessary. But I find that solution rather ugly.
>
> Using the not-yet-available grep:
>
> my $new_set = $spanset->set_grep(
> sub { $_[0]->intersects( $span ) }
> );
>
note: this won't "bound" an unbounded recurrence immediately.
This means that as_list() and iterate() are disabled.
This kind of intersection could be implemented in Set::Infinite as a
low-level method.
How would you name this method?
- Flavio S. Glock