[Cascavel-pm] Somar elementos numericos de um array

Flavio S. Glock fglock em gmail.com
Terça Abril 10 11:17:43 PDT 2007


Em 10/04/07, Wendel Scardua<wendelscardua em gmail.com> escreveu:
> Afinal, @result tá sendo usado em contexto escalar, que corresponde à sua
> quantidade de elementos. (a string a ser "evaluada" é construida antes de se
> chamar a função de benchmark, então é exatamente essa sub que está sendo
> executada zilhões de vezes).
>
> Moral da história: não adianta nada uma função dar o resultado rápido se ela
> der o resultado errado. (a não ser que seja um algoritmo de aproximação =p)
>

Wendel - tens razão, eu me confundo com:

  "" . @array
  "@array"

que dão resultados diferentes.

  perl -e '  @a=1..6; print "". em a."  @a\n" '

Em 10/04/07, Daniel Ruoso<daniel em ruoso.com> escreveu:
> Ter, 2007-04-10 às 17:40 +0200, Luis Motta Campos escreveu:
> > On Apr 10, 2007, at 3:27 PM, Daniel Ruoso wrote:
> > > Hmmm... sei não mas acho que você não está sendo propriamente justo
> > > nessa comparação... no caso do eval você tem uma função que não
> >    Reescreve, se você tiver tempo e saco, que eu quero entender o que
> > você está argumentado.
> >    Por favor?
>
> O código que o flávio mandou faz a mesma coisa que o código seguinte,
> acho que vai ficar claro agora...
>

Obrigado Daniel :)

Há duas coisas acontecendo:

- o eval é executado somente uma vez, antes do benchmark começar.
- o resultado da soma do array é constante, por isso o compilador otimiza.

- Flávio S. Glock


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