Если левый фолд использовать, то с аккумулятором в виде массива:
my @rt=reduce { push @$a, $a->[-1] + $b; $a } [0], @seq;
немного побенчмаркал
Rate scanl1 reduce map forscanl1 4.93/s -- -88% -88% -90%reduce 41.7/s 747%
-- -2% -19%map 42.6/s 766% 2% -- -17%for 51.6/s 948% 24% 21% --
3 декабря 2015 г., 1:25 пользователь Akzhan Abdulin <
[email protected]> написал:
> Кстати, прямой аналог почти - use List::Util qw( reduce );
>
> 2 декабря 2015 г., 16:40 пользователь Akzhan Abdulin <
> [email protected]> написал:
>
> вообще-то это типичный accumulate (в ruby - inject).
>>
>> тут map имеет смысл, ибо используется возвращаемое значение (и вообще -
>> это единственный надежный критерий).
>>
>> 2 декабря 2015 г., 15:28 пользователь Гришаев Анатолий <
>> [email protected]> написал:
>>
>> А как бегущую сумму считать без map? for тут явно избыточен.
>>> my $sum = 0;
>>> @running_sum = map { $sum+= $_ } @item?
>>>
>>> 2 декабря 2015 г., 2:03 пользователь Akzhan Abdulin <
>>> [email protected]> написал:
>>>
>>> код должен отражать его логику. поэтому использование map - явный вред.
>>>>
>>>> 26 ноября 2015 г., 6:39 пользователь Anatoly Y <[email protected]>
>>>> написал:
>>>>
>>>> Иисуси, да тебя самого впору цитировать! Браво! )
>>>>>
>>>>> 2015-11-25 22:45 GMT+06:00 Andrey Kovbovich <[email protected]>:
>>>>>
>>>>>> Перефразируя тезис Черча-Тьюринга, любая вычислимая функция также
>>>>>> вычислима на устройстве Тьюринга. Собственно функция map и оператор for
>>>>>> эквивалентны. Предполагается что map не производит эффектов имея
>>>>>> функциональную природу, for напротив работает непосредственно изменяя
>>>>>> данные в памяти. То есть map он больше в контексте pipes and filters, где
>>>>>> исходные данные иммутабнльны.
>>>>>> 25 нояб. 2015 г. 2:09 PM пользователь "Ilya Chesnokov" <
>>>>>> [email protected]> написал:
>>>>>>
>>>>>> 25 ноября 2015 г., 15:31 пользователь Ivan Petrov
>>>>>>> <[email protected]> написал:
>>>>>>> >> Ни фига подобного. Посыл верный. Если сомневаешься - делай
>>>>>>> бенчмарки.
>>>>>>> >> Другое дело что писать их надо конкретно под свои кейсы и не
>>>>>>> обращать
>>>>>>> >> внимания на “несколько быстрее”.
>>>>>>> >
>>>>>>> > в нашем мире скорость работы кода вещь конечно важная, но
>>>>>>> вторичная.
>>>>>>> > первичная вещь - это скорость/возможность работы С кодом.
>>>>>>> >
>>>>>>> > людей с базовыми парадигмальными нарушениями я бы на работу не
>>>>>>> брал.
>>>>>>> > не смотря на то, что нарушения в парадигмах иногда дают более
>>>>>>> быстрый
>>>>>>> > код.
>>>>>>>
>>>>>>> Это уже Ваши личные выводы. Спасибо, что поделились, но они мало
>>>>>>> относятся к изначальному вопросу:
>>>>>>>
>>>>>>> > Вопрос в том, какие есть подводные камни второго метода и какой
>>>>>>> из методов быстрее и оптимальнее по памяти (обрабатывается большое
>>>>>>> количество текста в каждом элементе)
>>>>>>>
>>>>>>> ТС, имейте в виду - если будете использовать map вместо for, и
>>>>>>> наоборот, Ivan Petrov Вас на работу не возьмет. Это к вопросу о
>>>>>>> подводных камнях.
>>>>>>>
>>>>>>> А для измерения скорости используйте бенчмарк / профайлинг с
>>>>>>> реальными
>>>>>>> данными на реальном железе.
>>>>>>>
>>>>>>> > --
>>>>>>> > Moscow.pm mailing list
>>>>>>> > [email protected] | http://moscow.pm.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Best regards,
>>>>>>> Ilya Chesnokov
>>>>>>> --
>>>>>>> Moscow.pm mailing list
>>>>>>> [email protected] | http://moscow.pm.org
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Moscow.pm mailing list
>>>>>> [email protected] | http://moscow.pm.org
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Moscow.pm mailing list
>>>>> [email protected] | http://moscow.pm.org
>>>>>
>>>>>
>>>>
>>>> --
>>>> Moscow.pm mailing list
>>>> [email protected] | http://moscow.pm.org
>>>>
>>>>
>>>
>>> --
>>> Moscow.pm mailing list
>>> [email protected] | http://moscow.pm.org
>>>
>>>
>>
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
>
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org