Підтримка
www.wikidata.uk-ua.nina.az
U programuvannya chista funkciya ce funkciya yaka maye taki vlastivosti poverneni znachennya z funkciyi totozhni dlya totozhnih argumentiv niyakih zmin razom z lokalnimi statichnimi zminnimi nelokalnimi zminnimi mutovnimi argumentami posilanyami abo potokami vvedennya vivedennya i funkciya ne maye pobichnih vpliviv ne zminyuye lokalni statichni zminni nelokalni zminni zminni argumenti posilannya abo potoki vvedennya vivedennya Otzhe chista funkciya ce obchislyuvalnij analog matematichnoyi funkciyi Deyaki avtori osoblivo zi spilnoti imperativnih mov vikoristovuyut termin chista dlya vsih funkcij sho mayut lishe drugu zi shojno navedenih vlastivostej obgovoreno nizhche PrikladChisti funkciyi Nastupni prikladi funkcij z C chisti floor povertaye cilu chastinu chisla max povertaye bilshe z dvoh znachen funkciya f viznachena yak void f static std atomic lt unsigned int gt x 0 x Znachennya x mozhna sposterigati vseredini viklikiv f i cherez te sho f ne povidomlyaye znachennya x nazovni vona nevidriznenna vid funkciyi void f yaka nichogo ne robit Zauvazhte sho x ce std atomic tomu zmini z bagatoh potokiv sho vikonuyut f konkurentno ne sprichinyayut stan gonitvi yakij prizvodit do neviznachenoyi povedinki v C i C Nechisti funkciyi Nastupni funkciyi C nechisti bo yim brakuye vlastivosti 1 bo povertane znachennya zminyuyetsya zi zminoyu statichnoyi zminnoyi int f static int x 0 x return x bo povertane znachennya zminyuyetsya zi zminoyu nelokalnoyi zminnoyi int f return x Z toyi zh prichini napriklad bibliotechna funkciya C sin ne chista bo yiyi naslidok zalezhit vid rezhimu zaokruglennya IEEE yakij mozhna zminiti pid chas vikonannya bo povertane znachennya zminyuyetsya zi zminoyu mutovnogo argumenta posilannya int f int x return x bo povertane znachennya zalezhit vid stanu potoku vvedennya int f int x 0 std cin gt gt x return x Nastupni funkciyi v C nechisti bo voni ne mayut vlastivosti 2 cherez zminu lokalnoyi statichnoyi zminnoyi void f static int x 0 x cherez zminu nelokalnoyi zminnoyi void f x cherez zminu mutovnogo argumenta posilannya void f int x x cherez zminu potoku vivedennya void f std cout lt lt Hello world lt lt std endl Nastupni funkciyi v C nechisti bo voni ne mayut oboh vlastivostej bo povertane znachennya zminyuyetsya razom z lokalnoyu statichnoyu zminnoyu i cherez zminu lokalnoyi statichnoyi zminnoyi int f static int x 0 x return x bo povertane znachennya zminyuyetsya zalezhno vid stanu potoku vvedennya i sam potik vvedennya zaznaye zmin int f int x 0 std cin gt gt x return x Optimizaciyi kompilyatoraFunkciyi sho mayut lishe drugu vlastivist dozvolyayut taki kompilyatorni tehniki optimizaciyi yak usunennya spilnih pidviraziv i optimizaciya cikliv Priklad na C ce metod length sho povertaye rozmir ryadka sho zalezhit vid vmistu pam yati na yaku vkazuye zminna sho porushuye vlastivist 1 Prote v odnopotokovomu seredovishi nastupnij kod na C std string s Hello world int a 10 1 2 3 4 5 6 7 8 9 10 int l 0 for int i 0 i lt 10 i l s length a i mozhna optimizuvati tak sho znachennya s length obchislene lishe raz pered ciklom PrimitkiBartosz Milewski 2013 School of Haskell FP Complete Arhiv originalu za 27 zhovtnya 2016 Procitovano 13 lipnya 2018 Os zasadnichi vlastivosti chistih funkcij 1 Funkciya povertaye toj samij rezultat na kozhen viklik z tim samim naborom argumentiv Inakshe kazhuchi funkciya ne maye stanu i ne maye dostupu do zovnishnogo stanu Kozhnogo razu koli yiyi viklikayut vona povoditsya yak novonarodzhene dityatko bez spogadiv i bez znan pro navkolishnij svit 2 Funkciya ne maye pobichnih efektiv Viklik funkciyi odin raz ce te same sho viklikati yiyi dvichi i vidkinuti rezultat pershogo vikliku Brian Lonsdorf 2015 Professor Frisby s Mostly Adequate Guide to Functional Programming GitHub Procitovano 20 bereznya 2020 Chista funkciya ce funkciya yaka mayuchi toj samij vhid zavzhdi povertaye te same znachennya i ne maye zhodnih sposterezhnih pobichnih vpliviv GCC 8 1 Manual GCC the GNU Compiler Collection Free Software Foundation Inc 2018 Procitovano 28 chervnya 2018
Топ