[Cascavel-pm] Intersecção e diferença entre arrays

eden edencardim em gmail.com
Quinta Janeiro 17 05:18:12 PST 2008


2008/1/17 Rafael Lebrao Martins <rafamv1 em ig.com.br>:
> Bom dia, pessoal. Eu estava pesquisando aqui sobre intersecção e diferença
> entre arrays, mas não consegui encontrar nenhum link que "respondesse" às
> minhas dúvidas. Alguém ai pode me enviar algum link sobre o assunto...?

Você pode usar o módulo List::Compare ... Mas isso merece um golf:

O problema é:

assumindo que as seguintes variáveis estão inicializadas:

@a1=1..5;
@a2=3..7;

problema 1: imprimir @a1 - @a2 com os itens separados por vírgula. vai
resultar em "1, 2"
problema 2: imprimir @a1 ∩ @a2 com os itens separados por vírgula. vai
resultar em "3, 4, 5"

Minhas soluções:

diferença:

@a1{@a1}=1;
delete @a1{@a2};
print join ', ', keys %a1;

intersecção:

@a1{@a1}=1;
print join ', ', grep { exists $a1{$_} } @a2;

-- 
edenc.vox.com


Mais detalhes sobre a lista de discussão Cascavel-pm