при прочих равных reduce или for предпочтительнее, как описывающие суть операции.
3 декабря 2015 г., 2:26 пользователь Andrey Kovbovich <[email protected]> написал: > Если левый фолд использовать, то с аккумулятором в виде массива: > > 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 > >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
