[Moscow.pm] map vs foreach

Victor Efimov victor на vsespb.ru
Вт Ноя 24 11:58:30 PST 2015


там есть например "map in void context is no longer expensive". что-то
ещё нужно?
более детальный анализ? тогда непонятно зачем. ведь почти все против этой штуки:

гуглим map in void context

http://mm.iit.uni-miskolc.hu/Data/texts/Manuals/Perl5/faq/Q4.36.html
http://www.perlmonks.org/?node_id=296742

даже докция перла:

Note that $_ is an alias to the list value, so it can be used to
modify the elements of the LIST. While this is useful and supported,
it can cause bizarre results if the elements of LIST are not
variables. Using a regular foreach loop for this purpose would be
clearer in most cases


интересное мнение у Ларри Уолла:

http://mail.pm.org/pipermail/bath-pm/1999-November/000431.html

The argument against using an operator for other than its primary
purpose strikes me the same as the old argument that you shouldn't have
sex for other than procreational purposes.  Sometimes side effects
are more enjoyable than the originally intended effect.

That being said, I'd never grep someone in a void context myself.




24 ноября 2015 г., 22:42 пользователь D.MON <mescalito.ua на gmail.com> написал:
> По ссылке все замечательно, кроме того, что ни слова не сказано о разнице в скорости и оптимальности/субоптимальности использования памяти (это и был вопрос)
>
> Sent from my iPhone
>
>> On 24 Nov 2015, at 22:34, Victor Efimov <victor на vsespb.ru> wrote:
>>
>> имхо, map не нужно использовать, если результат map не нужен.
>> а вообще было уже сто раз
>> http://stackoverflow.com/questions/4174492/in-perl-is-it-appropriate-to-use-map-in-void-context-instead-of-a-foreach-loop
>>
>> 24 ноября 2015 г., 22:30 пользователь Mescalito
>> <mescalito.ua на gmail.com> написал:
>>> Приветствую, коллеги!
>>>
>>> Есть  вполне опредленная задача  - взять массив произвольного размера и
>>> что-то однотипное сделать с его элементами.
>>> Можно это сделать вида:
>>>
>>> foreach(@array) {
>>>   do_something($_)
>>> }
>>>
>>> а можно
>>>
>>> map { do_something($_) } @array
>>>
>>> Вторая запись мне нравится больше, т.к.  она более лаконична и более
>>> очевидно возвращается массив измененных элементов.
>>>
>>> Вопрос в том,  какие есть подводные камни  второго метода и какой из методов
>>> быстрее и оптимальнее по памяти (обрабатывается большое количество текста в
>>> каждом элементе)
>>>
>>> Все что я нашел в выдаче гугла и в монастыре - суть набор холиворов.
>>> Может кто-то здесь обладает сакральным знанием?
>>>
>>>
>>> --
>>> WBR,
>>> Mescalito.
>>>
>>> mailto: mescalito.ua на gmail.com
>>> skype:  mescalito_genesys
>>> phone: +38 067 974 7812
>>> phone: +7 915 382 2412
>>>
>>> --
>>> 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