[Moscow.pm] sum of array

Alexey Surikov ksurent на gmail.com
Вт Июн 7 12:34:07 PDT 2011


Есть куча служебных переменных, которые редко используются и которые можно
(но не нужно) приспособить под свои нужды:

$. += $_ for @m; say $.

В конце концов есть ведь сам массив:

unshift @m, 0; $m[0] += $m[$_] for 1 .. $#m; say shift @m;

2011/6/7 <moscow-pm-request на pm.org>

> > 2011/6/7 Aleksander Gorohovski:
> >
> >> Подскажите можно ли более изящно, без промежуточной переменной $sum,
> >> как это обычно делаю:
> >>
> >> my $sum;
> >> $sum += $_ for @m;
> >>
> >> подсчитать сумму элементов массива @m
> >> ?
> >
> > С подпрограммой, потому просто для коллекции:
> >
> >   $ perl -E 'sub funcsum { @_ > 1 ? funcsum(@_[1..$#_]) + $_[0] :
> > $_[0] } say funcsum(@ARGV)' 1 1 2 3 5 8 11
> >   31
>
> О-о. Тоже Супер. Главное функция безымянная.
> Спасибо.
>
> > (Созреет на ещё один LT для Шитова?) (:
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110607/ca42d661/attachment.html>


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