[Cascavel-pm] Somar elementos numericos de um array

Nilson Santos Figueiredo Junior acid06 em gmail.com
Segunda Abril 9 12:36:29 PDT 2007


On 4/9/07, "Víctor A. Rodríguez" <victor em bit-man.com.ar> wrote:
> a map e seu amigo !!
>
> my $suma;
> map { $suma += $_ } @teste;

Não, nesse caso, o map{} é tudo menos seu amigo.
O map{} serve pra quando você tem um certo conjunto de valores e quer
mapeá-los um a um em outro conjunto de valores. Por exemplo, quando
você tem uma array de números e quer mapear em uma array de quadrados
dos números:

  my @nums = (1..10);
  my @squares = map { $_**2 } @nums;

No caso em questão, quer se realizar uma operação e não um mapeamento.
Então, se for ser feita sem a utilização de módulos, a maneira mais
apropriada seria:

  my $soma = 0;
  $soma += $_ for @nums;

-Nilson Santos F. Jr.


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