Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Set::Infinite::_recurrUser(Contributed Perl DocumSet::Infinite::_recurrence(3)

NAME
       Set::Infinite::_recurrence - Extends Set::Infinite with recurrence
       functions

SYNOPSIS
	   $recurrence = $base_set->_recurrence	( \&next, \&previous );

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
       o   _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
	       }

       o   is_forever

	   Returns true	if the set is a	single span, ranging from -Infinity to
	   Infinity.

       o   _is_recurrence

	   Returns true	if the set is an unbounded recurrence, ranging from
	   -Infinity to	Infinity.

CONSTANTS
       o   INFINITY

	   The "Infinity" value.

       o   NEG_INFINITY

	   The "-Infinity" value.

SUPPORT
       Support is offered through the "datetime@perl.org" mailing list.

       Please report bugs using	rt.cpan.org

AUTHOR
       Flavio Soibelmann Glock <fglock@gmail.com>

       The recurrence generation algorithm is based on an idea from Dave
       Rolsky.

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.

SEE ALSO
       Set::Infinite

       DateTime::Set

       For details on the Perl DateTime	Suite project please see
       <http://datetime.perl.org>.

perl v5.32.1			  2016-10-09	 Set::Infinite::_recurrence(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | CONSTANTS | SUPPORT | AUTHOR | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Set::Infinite::_recurrence&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help