[Moscow.pm] map vs foreach

Akzhan Abdulin akzhan.abdulin на gmail.com
Ср Дек 2 17:10:15 PST 2015


при прочих равных reduce или for предпочтительнее, как описывающие суть
операции.

3 декабря 2015 г., 2:26 пользователь Andrey Kovbovich <akovbovich на gmail.com>
написал:

> Если левый фолд использовать, то с аккумулятором в виде массива:
>
> 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 <
> akzhan.abdulin на gmail.com> написал:
>
> Кстати, прямой аналог почти - use List::Util qw( reduce );
>>
>> 2 декабря 2015 г., 16:40 пользователь Akzhan Abdulin <
>> akzhan.abdulin на gmail.com> написал:
>>
>> вообще-то это типичный accumulate (в ruby - inject).
>>>
>>> тут map имеет смысл, ибо используется возвращаемое значение (и вообще -
>>> это единственный надежный критерий).
>>>
>>> 2 декабря 2015 г., 15:28 пользователь Гришаев Анатолий <
>>> agrishaev на gmail.com> написал:
>>>
>>> А как бегущую сумму считать без map? for тут явно избыточен.
>>>> my $sum = 0;
>>>> @running_sum = map { $sum+= $_ } @item?
>>>>
>>>> 2 декабря 2015 г., 2:03 пользователь Akzhan Abdulin <
>>>> akzhan.abdulin на gmail.com> написал:
>>>>
>>>> код должен отражать его логику. поэтому использование map - явный вред.
>>>>>
>>>>> 26 ноября 2015 г., 6:39 пользователь Anatoly Y <iskhartakh на gmail.com>
>>>>> написал:
>>>>>
>>>>> Иисуси, да тебя самого впору цитировать! Браво! )
>>>>>>
>>>>>> 2015-11-25 22:45 GMT+06:00 Andrey Kovbovich <akovbovich на gmail.com>:
>>>>>>
>>>>>>> Перефразируя тезис Черча-Тьюринга, любая вычислимая функция также
>>>>>>> вычислима на устройстве Тьюринга. Собственно функция map и оператор for
>>>>>>> эквивалентны. Предполагается что map не производит эффектов имея
>>>>>>> функциональную природу, for напротив работает непосредственно изменяя
>>>>>>> данные в памяти. То есть map он больше в контексте pipes and filters, где
>>>>>>> исходные данные иммутабнльны.
>>>>>>> 25 нояб. 2015 г. 2:09 PM пользователь "Ilya Chesnokov" <
>>>>>>> chesnokov.ilya на gmail.com> написал:
>>>>>>>
>>>>>>> 25 ноября 2015 г., 15:31 пользователь Ivan Petrov
>>>>>>>> <i.petro.77.00 на gmail.com> написал:
>>>>>>>> >> Ни фига подобного. Посыл верный. Если сомневаешься - делай
>>>>>>>> бенчмарки.
>>>>>>>> >> Другое дело что писать их надо конкретно под свои кейсы и не
>>>>>>>> обращать
>>>>>>>> >> внимания на “несколько быстрее”.
>>>>>>>> >
>>>>>>>> > в нашем мире скорость работы кода вещь конечно важная, но
>>>>>>>> вторичная.
>>>>>>>> > первичная вещь - это скорость/возможность работы С кодом.
>>>>>>>> >
>>>>>>>> > людей с базовыми парадигмальными нарушениями я бы на работу не
>>>>>>>> брал.
>>>>>>>> > не смотря на то, что нарушения в парадигмах иногда дают более
>>>>>>>> быстрый
>>>>>>>> > код.
>>>>>>>>
>>>>>>>> Это уже Ваши личные выводы. Спасибо, что поделились, но они мало
>>>>>>>> относятся к изначальному вопросу:
>>>>>>>>
>>>>>>>> > Вопрос в том,  какие есть подводные камни  второго метода и какой
>>>>>>>> из методов быстрее и оптимальнее по памяти (обрабатывается большое
>>>>>>>> количество текста в каждом элементе)
>>>>>>>>
>>>>>>>> ТС, имейте в виду - если будете использовать map вместо for, и
>>>>>>>> наоборот, Ivan Petrov Вас на работу не возьмет. Это к вопросу о
>>>>>>>> подводных камнях.
>>>>>>>>
>>>>>>>> А для измерения скорости используйте бенчмарк / профайлинг с
>>>>>>>> реальными
>>>>>>>> данными на реальном железе.
>>>>>>>>
>>>>>>>> > --
>>>>>>>> > Moscow.pm mailing list
>>>>>>>> > moscow-pm на pm.org | http://moscow.pm.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Best regards,
>>>>>>>> Ilya Chesnokov
>>>>>>>> --
>>>>>>>> Moscow.pm mailing list
>>>>>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Moscow.pm mailing list
>>>>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Moscow.pm mailing list
>>>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Moscow.pm mailing list
>>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>>
>>>>>
>>>>
>>>> --
>>>> Moscow.pm mailing list
>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>>
>>>>
>>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20151203/8b923965/attachment-0001.html>


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