[Rio-pm] Golfe! lendo arquivos, ordenando entradas e removendo duplicadas

breno breno em rio.pm.org
Terça Março 4 11:11:36 PST 2008


Hahahahhahha adorei! Realmente, ainda não me acostumei com a notação
de }{, e bem que achei que estava usando variáveis demais. Acho que
estou mal acostumado com código legível, ainda sou muito cru pra golfe
com os campeões da PGA (Perl Golfers Association)

Mas e aí, Fernando... Vai deixar a Mlia te desbancar do trono???

[]s

-b

2008/3/4 Fernando Oliveira <fernandocorrea em gmail.com>:
> Breno, dá p/ diminuir bem só no END...
>
>  perl -ne 'push em a,$_ unless$v{$_}++;END{print sort em a}' lista.txt
>
> unless é muito grande...
>
> perl -ne 'push em a,$_ if!$v{$_}++;END{print sort em a}' lista.txt
>
> dá p/ tirar o END...
>
> perl -ne 'push em a,$_ if!$v{$_}++}{print sort em a' lista.txt
>
> acho q já diminuiu bastante... mas acho q o melhor seria usar hash... mas a
> mila já roubou a minha solução!
>
> Em 04/03/08, breno <breno em rio.pm.org> escreveu:
> >
> >
> >
> > Salve, pessoal! (Não, sério, salvem sempre... acabei de perder vários
> > arquivos aqui)
> >
> > Hoje vieram falar comigo com um código Perl de 11 linhas que recebe um
> > arquivo no seguinte formato:
> >
> > -------------8<-----------------
> > palavra1
> > palavra2
> > palavra3
> > ....
> > -------------8<-----------------
> >
> > e retorna uma lista com todas as palavras ORDENADAMENTE e SEM REPETIÇÕES.
> >
> > Daí pensei cá com meus botões... dá pra fazer em 1 linha... e eis que
> > saiu minha tacada:
> >
> >
> > perl -ne 'push em a,$_ unless$v{$_}++;END{@a=sort em a;print em a}' lista.txt
> > lista2.txt ...
> >
> >
> > 47 caracteres. Mas como não sou um praticante ávido de Golfe (salve
> > salve mestre Fernando), tenho certeza que dá pra fazer em menos. Notem
> > que desse jeito, ao contrário do código inicial, é possível passar
> > quantos arquivos de lista de palavras tiverem, e ele vai ordenar e
> > remover duplicadas como se tudo fosse um único arquivão.
> >
> > Quem se habilita ao desafio?
> >
> > Dica: acho que trabalhando com concatenação de strings (ao invés de
> > push em lista) fica bem menor...
> >
> >
> > []s
> >
> > -b
> >
> > _______________________________________________
> > Rio-pm mailing list
> > Rio-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/rio-pm
> >
>
>
>
> --
> []'s Fernando
> _______________________________________________
>  Rio-pm mailing list
>  Rio-pm em pm.org
>  http://mail.pm.org/mailman/listinfo/rio-pm
>


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