sexta-feira, março 31, 2006

Código em Perl

sub setSubtraction {     
    my ($min, $st) = @_;          
    my @minuendo = @{$min};
    my @subt = @{$st};     
    my %hm;    
    my %hs;     
    my @res;     

    foreach(@minuendo){ $hm{$_} = 1;}         
    foreach(@subt){$hs{$_} = 1;}     

    while (($key, $value) = each(%hm)){  
        if($hs{$key} != 1){     
            push @res, $key;   
        }    
    }
     
    return @res;   
}
O código acima ilustra alguns pontos pelos quais eu demorei muito pra aprender Perl. E mesmo já tendo feito alguns programas em Perl, ainda tenho extrema dificuldade em ler um programa....porque nunca me lembro o que %, @ e $ representam, e para qual variável $_ aponta. As coisas são pouco intuitivas, e os programas em geral são feios e difíceis de serem lidos (sobre tudo se tiverem expressões regulares). Tá certo que eu não sou um grande expert de Perl, mas mesmo pessoas que conhecem a linguagem demoraram pra ver o que o programa fazia. E pior: cada uma das pessoas que viu o código usaria outra síntaxe para escrever alguns trechos do programa (cada uma deu uma sugestão diferente para trechos diferentes). Sem mudar o algoritmo e as estruturas de dados usadas, existem N variantes de sintaxe possíveis. Acho que muita flexibilidade às vezes atrapalha. Como diria o Raphael, autor do código acima: "Write once, never read it again". Fico imaginando o trabalho que deve ser manter grandes sistemas. Agora, reconheço o poder de Perl para tratar strings, textos e afins, e por sua rapidez para escrever protótipos. Foi por isso que escolhi essa linguagem (que na época não conhecia) para escrever um programa que lia um texto e etiquetava as palavras segundo a posição da sílaba tônica e número de sílabas. Em C teria sido muito mais difícil. Alguém sabe me dizer o que o programinha acima faz ?

23 Comments:

Anonymous Anônimo said...

Truco!

- Eu nunca escrevi esse código.
- Aliás, eu escrevi at gunpoint
- Foram as vozes... as vozes mandaram fazer desse jeito!
- Sabe como é, né... Veja bem, considerando o paradigma, e a motricidade média do neurônio de um programador em linguagens pseudo-imperitavas-funcionais, Orientadas a Objeto, acho que esse código carece de retrabalho.
- Ah, não enche. O cliente aprovou.
- Eu só fiz assim pq do outro jeito era tão rápido que dava loop infinito em 30 segundos
- É uma nova técnica que eu estou desenvolvendo. Chama "Stupid-people oriented programming". Muito aceita entre programadores treinados pela Impacta.


Quanto a frase, essa deve ser minha mesmo.
Até,
Raphael

3/31/2006 03:39:00 PM  
Blogger Marcos Dumay de Medeiros said...

Ahhhhhhhhh! Faz subtração de conjuntos! Cara demorei pra entender esse :)

Perl é muito dificil de ler sim. Qualquer programa não trivial é complicado. Essas variáveis de nome estranho requerem um tempão pra aprender a reconhecer e os modificadores de expressão regular são quase impossíveis de decodificar.

Acho que o problema é que parte da sintaxe to Perl foi baseada na do sh, que só serve mesmo para programas curtos. Isso e os modificadores de expresão regular, que foram muito mal bolados.

Acho que todo mundo tem muito a ganhar saindo do Perl para outras linguágens, mas eu não sei de nehuma em que seja tão fácil trabalhar com expressões regulares.

3/31/2006 04:48:00 PM  
Blogger D. said...

Galves, eu corri, como o diabo corre da cruz, para não aprender Pearl.

Meu medo era que um dia me mandassem dar manutenção em um código como este acima.

Felizmente, não sei o que ele faz.

3/31/2006 04:50:00 PM  
Blogger D. said...

Nem o nome eu aprendi! ...corrigindo: Perl.

3/31/2006 04:52:00 PM  
Blogger Miguel Galves said...

De fato..ele subtrae listas! Parabens :-) (o nome facilita um pouco nesse caso, mas mesmo assim...)

3/31/2006 05:11:00 PM  
Anonymous Anônimo said...

Hello
xanax cheap xanax buy xanax online phentermine buy phentermine online phentermine cheap tramadol buy tramadol online tramadol cheap levaquin buy levaquin online levaquin cheap lnorvasc buy sex online babe online casino online casino online
lroulette online blackjack online lpoker online phentermine online xanax xanax buy phentermine phentermine buy phentermine cheap
Enjoy

1/25/2007 07:05:00 AM  
Anonymous Anônimo said...

Hi all!
That was useful info...thanks and Welcome to live chat FETISH. If you search the aldactone? Click here - aldactone
for fun

2/04/2007 10:44:00 AM  
Anonymous Anônimo said...




































2/08/2007 08:53:00 AM  
Anonymous Anônimo said...

Hi all!
live chat
Good job.....thanks.....Must be a reason to find friends in your area! Try my page....
G'night

2/09/2007 08:53:00 AM  
Anonymous Anônimo said...

Hi. Alone on Valentine's Day? Adult Chat & Love Try to find partner in your area!
for fun

2/14/2007 02:10:00 PM  
Anonymous Anônimo said...

Hi. Alone on Valentine's Day? Live adult chat Find sex partner in your area! Free offer
Enjoy

2/14/2007 09:18:00 PM  
Anonymous Anônimo said...

Hi all!. Use these helpful search engines TFO search & movie pages and try to find all you need in your area!
for fun

2/18/2007 08:58:00 PM  
Anonymous Anônimo said...

Hello. Use this search engine for best result: TFOsearch Find all you need in your area!
Enjoy

2/20/2007 02:12:00 AM  
Anonymous Anônimo said...

Buy Viagra Online, Levitra Pills, Buy Cialis Pills,
Order Generic Viagra Online, Buy Phentermine Online

2/22/2007 08:25:00 PM  
Anonymous Anônimo said...

Designer handbag, Louis vuitton, ,
Piercing, Body piercing,

2/26/2007 08:28:00 PM  
Anonymous Anônimo said...

Hi.. good topic... respect


























2/28/2007 08:33:00 AM  
Anonymous Anônimo said...

It's a real show............ Try to find sexy partner in your area !
- JOIN FREE - After free registration you can have unlimited access to the huge adult source.
ATTANTION ! Adult only !...... http://todaytop.tripod.com

3/24/2007 06:50:00 PM  
Anonymous Anônimo said...

musica mp3, musica rap, musica italiana mp3, musica film,
musica araba, musica napoletana, musica midi

3/29/2007 02:37:00 AM  
Anonymous Anônimo said...

For Greetings give sweets!
The amateur of Sex and Health
Welcome to sexy teens | movie pages | picture pages | webcam movie | adult friend finder.
Here pages devoted to health are published.
It is the large search robot, which can help to receive this or that information and as to get this or that goods!
Tramadol | Phentermine | Buy Xanax | Xanax and all that is necessary.
G'night...

4/06/2007 04:50:00 PM  
Anonymous Anônimo said...

[url=http://forums.bleachexile.com/member.php?u=57438]casio digital camera [/url] and
[url=http://forums.bleachexile.com/member.php?u=57532]muscle relaxer
hip pain
back pain treatment
back pain
chest pain
[/url]

[url=http://kinopoisk.sms-jet.ru/sitemap.html]скачать фильмы[/url] скачать фильмы

a digital camera and
back pain relief
chronic pain
chest pain
leg pain
hip pain

12/12/2009 10:28:00 PM  
Anonymous Anônimo said...

Мне понравился ваш сайтик , если интересно - вот мой - видео голые знаменитости

1/07/2010 08:36:00 AM  
Anonymous Anônimo said...

[url=http://satrise.ru/familiya/sitemap_0.html]происхождение фамилии[/url]
а также
[url=http://satrise.ru/]происхождение фамилии[/url]
а также
[url=http://znacheniie.ru/]происхождение фамилии[/url]
а также
[url=http://znacheniie.ru/sitemap_0.html]значение фамилии[/url]
мои сайты для вас
происхождение фамилии
а также
происхождение фамилии
а также
происхождение фамилии
а также
значение фамилии
а также
Посмотреть фильм онлайн бесплатно
[url=http://nasharussia3.rv.ua/]смотреть онлайн Наша раша Яйца судьбы [/url]
смотреть онлайн Наша раша Яйца судьбы
Посмотреть фильм онлайн бесплатно
Посмотреть трейлер к фильму мне бы в небо а также смотрите кинопремьера скоро
[url=http://nasharushakino.rv.ua/]смотреть онлайн Наша раша Яйца судьбы[/url]
скачать фильм Наша раша Яйца судьбы
Посмотреть фильм онлайн бесплатно вместе с семьей
Samsung lcd

1/20/2010 02:55:00 AM  
Anonymous Anônimo said...

Online Instant LoansYour all online acute loan will be done and all the time read adjustment and conditions. There isn't any want for payday loans or affair like that. [url=http://paydayloanscoolp.co.uk]3 month payday loans[/url] Make sure you accept all the adapted and advance to the payday lender.

12/27/2012 03:28:00 PM  

Postar um comentário

<< Home