sirva esta entrada para compartir una receta eficiente para calcular el conjunto diferencia entre dos listas o arrays en lenguaje Perl5.
![]() |
| Conjunto diferencia, tomado de https://es.wikipedia.org/wiki/Diferencia_de_conjuntos. |
my @a = 0..10000; my @b = 5000..10000;
array_minus(@a, @b);
sub array_minus(\@\@) {
my %e = map{ $_ => undef } @{$_[1]};
return grep( ! exists( $e{$_} ), @{$_[0]} );
}
Podéis ver otras alternativas en reddit, incluyendo soluciones en Perl6 y python,un saludo,
Bruno
