Set::Infinite::_recurrence - Extends Set::Infinite with recurrence functions
Contents
Constants
• INFINITY
The "Infinity" value.
• NEG_INFINITY
The "-Infinity" value.
Copyright
Copyright (c) 2003 Flavio Soibelmann Glock. All rights reserved. This program is free software; you can
distribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
Description
This is an internal class used by the DateTime::Set module. The API is subject to change.
It provides all functionality provided by Set::Infinite, plus the ability to define recurrences with
arbitrary objects, such as dates.
Methods
• _recurrence ( \&next, \&previous )
Creates a recurrence set. The set is defined inside a 'base set'.
$recurrence = $base_set->_recurrence ( \&next, \&previous );
The recurrence functions take one argument, and return the 'next' or the 'previous' occurrence.
Example: defines the set of all 'integer numbers':
use strict;
use Set::Infinite::_recurrence;
use POSIX qw(floor);
# define the recurrence span
my $forever = Set::Infinite::_recurrence->new(
Set::Infinite::_recurrence::NEG_INFINITY,
Set::Infinite::_recurrence::INFINITY
);
my $recurrence = $forever->_recurrence(
sub { # next
floor( $_[0] + 1 )
},
sub { # previous
my $tmp = floor( $_[0] );
$tmp < $_[0] ? $tmp : $_[0] - 1
},
);
print "sample recurrence ",
$recurrence->intersection( -5, 5 ), "\n";
# sample recurrence -5,-4,-3,-2,-1,0,1,2,3,4,5
{
my $x = 234.567;
print "next occurrence after $x = ",
$recurrence->{param}[0]->( $x ), "\n"; # 235
print "previous occurrence before $x = ",
$recurrence->{param}[2]->( $x ), "\n"; # 234
}
{
my $x = 234;
print "next occurrence after $x = ",
$recurrence->{param}[0]->( $x ), "\n"; # 235
print "previous occurrence before $x = ",
$recurrence->{param}[2]->( $x ), "\n"; # 233
}
• is_forever
Returns true if the set is a single span, ranging from -Infinity to Infinity.
• _is_recurrence
Returns true if the set is an unbounded recurrence, ranging from -Infinity to Infinity.
Name
Set::Infinite::_recurrence - Extends Set::Infinite with recurrence functions
See Also
Set::Infinite
DateTime::Set
For details on the Perl DateTime Suite project please see <http://datetime.perl.org>.
perl v5.34.0 2022-06-13 Set::Infinite::_recurrence(3pm)
Support
Support is offered through the "datetime@perl.org" mailing list.
Please report bugs using rt.cpan.org
Synopsis
$recurrence = $base_set->_recurrence ( \&next, \&previous );
