Page 263 - Bkhargava_-_Grokaem_algoritmy
P. 263

262    Глава 11.  Что дальше?


                                  /1\2\зl4ls)


                                   !J,  j,  !J,
                                 [2\4\ь\~\н~\




        Массив arr2 теперь содержит значения [2,  4,  б,  8,  10)  -  все элементы
        arrl увеличились вдвое! Удвоение выполняется достаточно быстро. Но
        представьте, что выполнение применяемой функции требует больше вре­
        мени. Взгляните на следующий псевдокод:

        >>>  arrl  =  #  Список URL
        >>>  arr2  =  map(download_page,  arrl)

        Имеется список URL-aдpecoв, нужно загрузить каждую страниuу и сохра­
        нить содержимое в arr2. Для каждого адреса загрузка занимает пару секунд.
        Для 1000 адресов потребуется пара часов! А теперь представьте, что у вас
        имеется 100 машин и map автоматически распределяет работу между ними.
        Тогда в любой момент будут загружаться сразу 100 страниц одновременно,
        и работа пойдет намного быстрее!


        Функция reduce


        Функция reduce иногда сбивает людей с толку. Идея заключается в том, что
        весь список элементов «сокращается~ до одного элемента. Напомню, что
        функция map  переходит от одного массива к другому.


                                 /1\2\з/4\s)

                                   !  J,  j,  J,J.
                                 [2\4\ь\~\н~\




        С функцией reduce массив преобразуется в один элемент.





                                                         www.trk.kg
   258   259   260   261   262   263   264   265   266   267   268