Підтримка
www.wikidata.uk-ua.nina.az
Prozorist posilan i neprozorist posilan ce vlastivosti chastin komp yuternih program Viraz nazivayut prozorim za posilannyami yaksho jogo mozhna zaminiti na jogo i ce ne vpline na povedinku programi Dlya cogo potribno abi viraz buv chistim jogo znachennya povinno buti odnakovim dlya odnakovih argumentiv i obchislennya ne povinno stvoryuvati pobichnih efektiv Viraz yakij ne ye prozorim za posilannyami nazivayut neprozorim za posilannyami V matematici vsi funkciyi prozori za posilannyami za viznachennyam matematichnoyi funkciyi Prote v programuvanni ce ne zavzhdi tak i chasto dlya uniknennya plutaniti vikoristovuyutsya termini procedura ta metod Klyuchovoyu harakteristikoyu funkcijnogo programuvannya ye te sho vono dozvolyaye lishe prozori za posilannyam funkciyi Vazhlivist prozorosti posilan polyagaye v tomu sho voni dozvolyayut programistu ta kompilyatoru robiti zdogadi pro povedinku programi Ce mozhe dopomogti v dovedenni en sproshenni algoritmu dopomagaye pri zmini kodu bez otrimannya novih pomilok abo optimizaciyi kodu za dopomogoyu memoizaciyi usunennya spilnih pidviraziv linivogo obchislennya abo paralelizaciyi IstoriyaPonyattya jmovirno pohodit z Principia Mathematica 1910 13 Alfreda Norta Vajtgeda ta Bertrana Rassela Jogo vviv u analitichnu filosofiyu Villard Van Orman Kvajn U suchasnij informatici termin z yavivsya pid chas obgovorennya zminnih u vplivovij seriyi konspektiv lekcij en en 1967 Konspekt posilavsya na Word and Object Kvajna v bibliografiyi Prikladi j kontrprikladiYaksho v virazi zadiyani lishe chisti funkciyi todi viraz bude prozorim za posilannyami Takozh deyaki nechisti funkciyi mozhut buti vikoristani u virazi yaksho yih znachennya ne vplivayut na znachennya virazu ta yih pobichni efekti neznachimi Vizmemo funkciyu sho ne prijmaye parametriv i povertaye dani vvedeni z klaviaturi Pripustimo yiyi viklik takij GetInput Znachennya povernute funkciyeyu GetInput zalezhit vid vvodu koristuvacha otzhe rizni vikliki GetInput z odnakovimi parametrami porozhnij spisok mozhut povertati rizni znachennya Zvidsi GetInput ani determinovana ani prozora za posilannyami Vitonchenishij priklad funkciya sho vikoristovuye globalnu zminnu zminnu z dinamichnoyu oblastyu vidimosti abo leksichne zamikannya shob polegshiti sobi obchislennya rezultatu Cherez te sho cya zminna ne peredayetsya yak parametr ale mozhe buti zminena rezultati poslidovnih viklikiv mozhut vidriznyatis navit yaksho parametri totozhni V chistomu funkcijnomu programuvanni vikoristovuyetsya pidhid yedinogo prisvoyennya tobto zminni pislya prisvoyennya yim znachen stayut nezminnimi ob yektami Arifmetichni operaciyi prozori za posilannyami 5 5 mozhna zaminiti na 25 V dijsnosti vsi funkciyi prozori za posilannyami v matematichnomu sensi sin x prozora bo zavzhdi povertaye odnakove znachennya dlya pevnogo x Prisvoyennya ne prozore Napriklad viraz na C x x 1 zminyuye znachennya nadane x Pripustimo x pochatkovo maye znachennya 10 dva poslidovni obchislennya virazu dayut vidpovidno 11 i 12 Zvidsi vidno sho zamina x x 1 na 11 abo 12 nadast programi inshogo sensu otzhe viraz ne prozorij za posilannyami Odnak viklik funkciyi int plusone int x return x 1 ye prozorim bo vona yavno ne zminyuye x otzhe ne maye pobichnih efektiv V bilshosti mov yakih viraz print Vitayu svite ne prozorij bo jogo zamina na znachennya sho povertayetsya zminyuye povedinku programi bo Vitayu svite ne nadrukuyetsya today tezh ne prozora bo vidaye rizni znachennya kozhnogo novogo dnya Vidminnist vid imperativnogo programuvannyaYaksho zamina virazu na jogo znachennya dijsna tilki v pevnij tochci vikonannya programi todi cej viraz ne prozorij za posilannyami Viznachennya i vporyadkuvannya cih tochok perebigu angl sequence point ce teoretichni pidvalini imperativnogo programuvannya i chastina semantiki imperativnih mov programuvannya Odnak cherez mozhlivist obchislennya viraziv prozorih za posilannyami bud koli neobov yazkovo viznachati tochki perebigu j vzagali bud yaki garantiyi poslidovnosti vikonannya Programuvannya vikonane na takij lad nazivayetsya chisto funkcijnim programuvannyam Odniyeyu z perevag napisannya kodu z prozorimi posilannyami ye te sho rozumnomu kompilyatoru legshe vikonuvati statichnij analiz kodu i vikoristovuvati krashi optimizaciyi Napriklad u vipadku S prisutnye pogirshennya shvidkodiyi cherez dodavannya do tila ciklu dorogoyi v sensi vikonannya funkciyi navit yaksho viklik funkciyi mozhna vinesti za tilo ciklu bez zmini rezultatu programi Programist zmushenij robiti ruchni pravki yaki mozhlivo poznachatsya na zruchnosti chitannya kodu A yaksho kompilyator v zmozi viznachiti sho viklik funkciyi prozorij za posilannyami vin mozhe zdijsniti ce peretvorennya avtomatichno Osnovnim nedolikom mov sho napolyagayut na prozorosti posilan ye te sho v nih poslidovnist dij yaka prirodno mozhe buti zapisana yak pokrokova poslidovnist v imperativnomu stili nabuvaye nezgrabnogo j rozlogogo viglyadu Taki movi chasto mistyat mehanizmi sho dozvolyayut vikonati taki zadachi prostishe zberigshi pri comu chistotu funkcijnosti movi napriklad DC gramatiki j monadi U vipadku prozorosti posilan nemaye riznici mizh posilannyam na ob yekt i samim ob yektom Inakshe taka riznicya mozhe buti legko vvedena j vikoristana PrimitkiJohn C Mitchell 2002 Concepts in Programming Languages Cambridge University Press s 78 Alfred North Whitehead Bertrand Russell 1927 Principia Mathematica T 1 vid 2nd Cambridge University Press Na storinci 665 Zgidno z Kvajnom termin pohodit zvidti Posilannyahttps stackoverflow com questions 210835 what is referential transparency 9859966 9859966
Топ