Brad programozási ciklusok
Nem kell túl komolyan venni ezt a szöveget. Ebben van egy bizonyos mennyiségű delírium
A mai programozási fontosabb érthetősége kódot, mint a teljesítmény. Módszerek csak a dolgát, és nem vesz részt a független cselekvés. Ezen túlmenően, a helyes gyakorlat működni mellékhatások nélkül. Ez lehetővé teszi a sokkal jobban optimalizált többszálú programok. Ezért a funkcionális programozás már egyre nagyon népszerű, átható még rendes imprativnye nyelven.
Lássuk, ahol ez a szép harmonikus világ rangsorolt ciklusban? És a hely valójában nem! Ciklusok nem kell a mindennapi munkához. Lehetnek rejtett el valahol a könyvtárban, vagy akár csak a fordítóprogram szinten. Ezek nélkül is elég könnyű csinálni, mindent egy szép csere. Mi listát, amely egy hurok:
transzformáció
Tipikus probléma: vegye ki objektumok listáját „felhasználó” csak a név és a munka vele tovább. Van egy teljesen kialakult absztrakció, például térképet jQuery vagy Select .NET. Egyetértenek abban, hogy a második kódot minta néz ki, sokkal világosabb az első, mert extra helper kód:
szűrő
Szintén része a problémának. Válassza ki az összes aktív felhasználó. Itt a szokásos kör szűrő és Ahol:
összesítés
Hol nélkül! Például ki kell számolnunk a felhasználók száma (igen, nincs beépített funkció):
A szokásos stílusban (általánosságban), akkor lehetséges, hogy nem valami ilyesmi, az akkumulátor:
Ebben az esetben az eredményt át valahol tovább, a fő célja nem lehet átalakítani. Itt jön a támogatás mindegyik jQuery és foreach .NET. Például, azt szeretnénk, hogy a felhasználó nevét a konzolon:
És minden együtt
És persze, ciklusokat egyidejűleg alkalmaz minden problémára együtt, még inkább zavarba ejtő kódot, és helyettesítheti a feladatok végrehajtásának felesleges végrehajtásának részleteit (amely valóban senki sem szüksége, és csak akadályozzák a további olvasásra a kód).
Szóval, válaszd az aktív felhasználó nevét és megtalálják a leghosszabb:
Egyeznek meg, a második kiviteli alak sokkal világosabb, és rövidebb. Amint a szöveg egyértelmű, hogy ő nem (és én még mindig nem használja kész Max). Az első esetben, a legegyszerűbb módja annak, hogy kitalálni, ami a kódneve egy változó, de ez ebben az egyszerű teszt. De a valóságban még inkább zavaró, mert feltétlenül nabegut SEO, és a ciklus viszont egy rövidebb és egyszerűbb változata, ami érthető (mintha), de az eredmény az összes logikai szögezték és annak változását nehezebbé válik, párosulva szinte teljes újraírása kódot:
végül
Annak érdekében, hogy ne lakjanak a legelemibb példa, úgy döntöttem, hogy egy kicsit bonyolultabb. Nevezetesen, a sort végrehajtását. Klasszikus quicksort tankönyv néz ki (csak a fő rész):
Ez a kód, persze, akkor podsokratit, de részleteket és a végrehajtás részleteit és optimalizálása. Azonban még egy ilyen példa, én elég időt töltött, mert végrehajtotta és fogott egy csomó hibát. És most az üzlet, mint egyfajta algoritmus minden szerkezetet nagyon nehéz. És most nézd mit írtam egyszerre LINQ:
Összesen 5 sor, és akkor tört kedvéért! És nézd, milyen egyszerű ez most megmagyarázni az algoritmus: hogy az első rendelkezésre álló elem, vegye ki az összes elemet a tömb kisebb, mint amilyen, rendezni őket szerint ugyanazt algoritom, hozzáad egy elemet megegyezik ezzel, és egy nagy, rendezve ugyanazt az algoritmust. Minden egyszerű, banális és nyilvánvaló.
Nem akarok lenni quicksort, válogatás akarom ezt. Semmi sem egyszerűbb:
Látod, ez egy világos logika és érthetőségét. Akkor miért kell több ciklusban?