Struppi: Doppelte Listeneinträge entfernen

Beitrag lesen

hat die Verwendung von grep und map irgendwelche Vorteile gegenueber einer Schleife, in der du dann alles Schritt fuer Schritt machst?

sie ist vermutlich schneller...

ich hab's mal getestet, bei wenig Einträgen ist die Version mit grep fast doppelt so schnell. Je größer das Array umso geringer wird der Unterschied.

Fuer mich ist es eher so, dass ich die Schreibarbeit die ich mir durch solche (fuer mich) abstrakten Konstruke sparen wuerde hinterher wieder mehr habe, um die entsprechenden Codezeilen ausfuehrlich zu kommentieren, weil ich sonst nichtmehr durchblicken wuerde was da passiert.

Bei allem Verständnis dafür, aber ich erkenne keine bessere Lesbarkeit zwischen den beiden Versionen:

  
    my %saw;  
    grep  $saw{(split/;/,$_)[2]}++  , @in;  
    my @out = keys %saw;  

  
    my %saw;  
    foreach(@in)  
    {  
         $saw{(split/;/,$_)[2]}++;  
    }  
    my @out = keys %saw;  

grep und map sind mächtige Befehle, sie durchlaufen einfach Listen und machen etwas mit dem Inhalt. Insofern finde ich sie nicht sonderlich abstrakt, was ich mir nicht merken kann ist, was sie konkret zurückgeben.

Struppi.

--
Javascript ist toll (Perl auch!)