Un Ejemplo Simple de Iterador

El siguiente ejemplo muestra la construcción de un iterador. El generador podria usarse como sigue:

16  my $row = iterator 1, 4;    # creación de un iterador de 1 a 4
17  my $col = iterator 1, 5, 2; # de 1 a 5 pero con paso 2
18  my ($r, $c);
19  while ($row->($r)) { 
20    print "$r: ";
21    while ($col->($c)) {
22      print "$c ";
23    }
24    print "\n";
25  }

Cada llamada a iterators crea un conjunto nuevo de variables léxicas y una nueva subrutina anónima. Es posible simultanear de este modo dos clausuras, cada una con su propio rango y paso:

lhp@nereida:~/Lperl/src$ perl iterators.pl
1: 1 3 5
2: 1 3 5
3: 1 3 5
4: 1 3 5
lhp@nereida:~/Lperl/src$

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19