[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