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

camila m. misskaapow em gmail.com
Terça Março 4 11:23:28 PST 2008


adriano++ mesmo! ;D

On 04/03/2008, Marco A P D'Andrade <mdacwb em gmail.com> wrote:
>
> Adriano++
>
> Mas o que eu propus foi simplesmente:
>
>   sort -u lista.txt
>
> Mesma abordagem do one-liner !
>
> Ok... não se aplica em perl golf, mas é uma solução simples para o
> proglema ;)
>
> Sds,
> Marco Antonio
>
>
> Em 04/03/08, breno<breno em rio.pm.org> escreveu:
> > Bah, mas a gente tá falando de desenvolver um programa que faça isso.
> >  Pensando assim poderiamos chamar o prog de "a" e fazer o Ultimate
> >  Shell Script:
> >
> >  ./a
> >
> >  e ganhamos o golfe com 1 caractere. A idéia é fazer um programa que
> >  resolva o problema. Usando os próprios recursos do shell, a sua
> >  resposta não ganha não:
> >
> >  $ wc -c /usr/bin/sort
> >  39736  /usr/bin/sort
> >
> >  muito mais até do que a maior resposta :-)
> >
> >  []s
> >
> >  -b
> >
> >  2008/3/4 Marco A P D'Andrade <mdacwb em gmail.com>:
> >
> > > Ah!
> >  >
> >  >  A Camila foi mais rapida no gatilho :D
> >  >
> >  >  Mas, como eu gosto de usar Perl onde ele é a melhor solução... nesta
> >  >  dá para dar uns pontinhos pro Julio Neves ... ;)
> >  >
> >  >  sort -u
> >  >
> >  >  Sds,
> >  >  Marco Antonio
> >  >
> >  >  Em 04/03/08, Marco A P D'Andrade<mdacwb em gmail.com> escreveu:
> >  >  > 32 caracteres ;)
> >  >  >
> >  >  >  perl -ne '$v{$_}++;END{print sort keys%v}'
> >  >  >
> >  >  >  Pra que um array, se vc está controlando em hash ?
> >  >  >
> >  >  >
> >  >  >  Em 04/03/08, breno<breno em rio.pm.org> escreveu:
> >  >
> >  >
> >  > >
> >  >  > > perl -ne 'push em a,$_ unless$v{$_}++;END{print sort em a}'
> >  >  >  >
> >  >  >  >  42 caracteres :-)
> >  >  >  >
> >  >  >  >  Me ocorreu que a transição do sort era desnecessária assim que
> eu li
> >  >  >  >  meu próprio post :-)
> >  >  >  >
> >  >  >  >  []s
> >  >  >  >
> >  >  >  >  -b
> >  >  >  >
> >  >  >  >
> >  >  >  >
> >  >  >  >  2008/3/4 breno <breno em rio.pm.org>:
> >  >  >  >
> >  >  >  > > 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
> >  >  >  >
> >  >  >
> >  >  _______________________________________________
> >  >  Rio-pm mailing list
> >  >  Rio-pm em pm.org
> >  >  http://mail.pm.org/mailman/listinfo/rio-pm
> >  >
> >  _______________________________________________
> >  Rio-pm mailing list
> >  Rio-pm em pm.org
> >  http://mail.pm.org/mailman/listinfo/rio-pm
> >
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
camila m.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/rio-pm/attachments/20080304/67ddb600/attachment.html 


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