[Rio-pm] Combinação

Gabriel Andrade de Santana gabiruh em gmail.com
Sexta Março 23 07:37:32 PDT 2012


2012/3/23 Aureliano Guedes <guedes_1000 em hotmail.com>:
> Boma dia, monges.
>
> Estou tentando fazer uma função que faça a combinação de cases sem usar o
> Set::CrossProduct.
>
> Exemplo, tenho [A-F] e [1-6], e uma string com 6 caracteres (_ _ _ _ _ _),
> ou seja 6 posições
> na primeira posição pode ser 1 ou A, na segunda 2 ou B ... na ultima 6 ou B,
> dai
> quero que a saida seja todas as combinações possiveis, oou seja, todas as
> possibilidades da string.
>
> Ja estou tentando a 2 dias, mas nada vem em mente.
>
> Caso eu tenha me expressado mal (como o de costume), eu tento explicar
> melhor.
>
> Aguardando alguma ajuda, desde ja obrigado.

Rápido e sujo:

perl -MRegexp::Genex=strings -le 'print for
strings(qr/(1|a)(2|b)(3|c)(4|d)(5|e)(6|f)/)'


Like a Sir:

use strict;
use warnings;

use feature 'say';
use List::MoreUtils qw(pairwise);
use Regexp::Genex qw(strings);

my @alpha = qw(a b c d e f);
my @num = qw(1 2 3 4 5 6);
my $pattern = join('', pairwise { "($a|$b)" } @alpha, @num);

say for strings(qr/$pattern/);


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