Constructor

Sigue el código:

lhp@nereida:~/Lperl/src$ cat -n allsubsets.pl
 1  #!/usr/bin/perl -w
 2  use strict;
 3
 4  sub subsets {
 5    my @set = @_;
 6    my $powern = 1 << @set;
 7    my $n = -1;
 8
 9    my $s = sub {
10      $n++;
11      return map {  $n & (1 << $_)? ($set[$_]) : () } 0..$#set;
12    };
13
14    return $s;
15  }
16
17  die "$0 el1 el2 el3 ...\n" unless @ARGV;
18  my $s = subsets(@ARGV);
19
20  my @S;
21  FOREVER: {
22    @S = $s->();
23
24    local $" = ', ';
25    print "(@S)\n";
26
27    last if (@S == @ARGV);
28
29    redo FOREVER;
30  }

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