[Moscow.pm] sum of array

Ruslan Zakirov ruz на bestpractical.com
Вт Июн 7 14:17:51 PDT 2011


sum из List::Util - это не только минимально, но еще и быстро (если с
компилятором). Далее есть сравнение.

Интересно, что Scalar::Util прижились без вопросов. blessed, weaken и
refaddr не вызывают вопросов, а к List::Util совершенно другое
отношение. Интересно, что оба модуля в одном дистрибутиве на CPAN. В
составе perl с 5.8.

comparing array sum with 1 element(s)
              Rate for loop sum util
for loop 1298871/s       --     -75%
sum util 5202767/s     301%       --

comparing array sum with 3 element(s)
              Rate for loop sum util
for loop 1068413/s       --     -74%
sum util 4142576/s     288%       --

comparing array sum with 10 element(s)
              Rate for loop sum util
for loop  627562/s       --     -83%
sum util 3594095/s     473%       --

comparing array sum with 100 element(s)
              Rate for loop sum util
for loop   96701/s       --     -92%
sum util 1226353/s    1168%       --


2011/6/8 Akzhan Abdulin <akzhan.abdulin на gmail.com>:
> Мне кажется самым изящным способ с использованием List::Util. Этот модуль
> часто нужен, поэтому его использование не является проблемой.
> Кстати, на ruby это будет так:
>> [1, 2, 3].inject(0) { |sum, value| sum + value }
>  => 6
> Или даже так:
>> [1, 2, 3].inject(0, &:+)
>  => 6
>
> 7 июня 2011 г. 22:34 пользователь Aleksander Gorohovski
> <angel на feht.dgtu.donetsk.ua> написал:
>>
>> Уважаемое сообщество,
>> Доброго времени суток!
>>
>> Подскажите можно ли более изящно, без промежуточной переменной $sum,
>> как это обычно делаю:
>>
>> my $sum;
>> $sum += $_ for @m;
>>
>> подсчитать сумму элементов массива @m
>> ?
>>
>> Спасибо.
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Best regards, Ruslan.


Подробная информация о списке рассылки Moscow-pm