ПредишенСледващото

Не трябва да се вземат прекалено на сериозно този текст. В него има определено количество делириум


В днешния програмиране е по-важно яснота на код от представяне. Методи трябва да направите само своята работа, и не участват в самостоятелни действия. В допълнение, добра практика да функционира без странични ефекти. Това дава възможност за много по-добре оптимизиран за многонишковите програми. Ето защо функционално програмиране сега става доста популярно, проникваща дори в обикновените езици imprativnye.

Нека да видим къде тази красива хармоничен свят класира цикъла? А мястото, всъщност не е! Цикли не се нуждаят за ежедневната си работа. Те могат да бъдат скрити някъде в библиотеката или дори да е само на ниво компилатор. Без тях може да бъде доста лесно да се направи, всичко има хубав замяна. Ние списък, който използва една линия:

трансформация

Типичен проблем: извадете списък на обекти, "потребител" само името и работата с него по-нататък. Налице е напълно оформени абстракция, например карта на JQuery или Select в .NET. Съгласен съм, че втората код образец изглежда много по-ясно на първо място, защото Без допълнителни помощник код:

филтриране

Също така част от проблема. Избор на всички активни потребители. Тук стандартната филтъра верига и когато:

съвкупност

Къде без него! Например, ние трябва да се изчисли броят на потребителите (да, ние нямаме вградена функция):
Един нормален стил (в общи линии) е възможно да се направи нещо такова, чрез батерията:

В този случай, резултатът се прехвърля някъде по-далеч, основната цел не може да се трансформира. Тук идват на помощ всеки в JQuery и ForEach в .NET. Например, ние искаме да донесе на потребителски имена на конзолата:

И всички заедно

И разбира се, цикли се използват едновременно за всички проблеми заедно, още по-объркващо код и заместител на изпълнението на задачи по изпълнението на ненужни подробности (които, наистина, никой никога не се нуждаят и само пречат на по-нататъшно четене на кода).

Така че, изберете най-активни потребителски имена и да намерят най-дълго:


Съгласете се, на втория вариант е много по-ясна и по-кратък. Веднага след като текстът е ясно, че той прави (и аз все още не се използват готови, направени от Макс). В първия случай, най-лесният начин да се отгатне, че прави кодовото име на променлива, но това е в този прост тест. Но в реалния живот още по-объркващо, защото непременно nabegut оптимизатори и цикълът ще се превърне в по-кратък и по-опростена версия, което е разбираемо (като че ли), но в резултат на всякаква логика прикован и неговата промяна става по-трудно, в съчетание с почти пълно пренаписване част от кода:

най-после

За да не се спирам на елементарни примери, реших да внесе малко по-сложно. А именно, изпълнението на сортиране. Класически бързасортировка учебник изглежда по следния начин (само за основната част):
Този код е, разбира се, можете да podsokratit, но това е детайли и подробности за внедряване и оптимизация. Въпреки това, дори и при такъв пример, Прекарах достатъчно време, тъй като е въвела и хвана много грешки. И сега сделката като алгоритъм на подреждане на всички структури, е много трудно. А сега виж какво пише веднага да LINQ:

Общо 5 линии и след това разделен за удобство! И вижте колко лесно е сега да се обясни на алгоритъма: предприеме първата свободна елемент, да вземе всички елементи от масив по-малки от това, да ги сортирате по една и съща algoritom, добавя елемент, равна на тази, както и голям, сортирани по същия алгоритъм. Всичко е просто, банална и очевидно.
Не искам да стана бързасортировка, сортиране искате да направите това. Нищо не може да бъде по-прост:

Виждате ли, това е ясно, логика и разбираемост. Така че, защо имате нужда от повече цикли?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!