www.wikidata.uk-ua.nina.az
Funkcijne programuvannya paradigma programuvannya yaka rozglyadaye programu yak obchislennya matematichnih funkcij ta unikaye staniv ta zminnih danih Funkcijne programuvannya nagoloshuye na zastosuvanni funkcij na vidminu vid imperativnogo programuvannya yake nagoloshuye na zminah v stani ta vikonanni poslidovnostej komand Inshimi slovami funkcijne programuvannya ye sposobom stvorennya program v yakih yedinoyu diyeyu ye viklik funkciyi yedinim sposobom rozbittya programi ye stvorennya novogo imeni funkciyi ta zadannya dlya cogo imeni virazu sho obchislyuye znachennya funkciyi a yedinim pravilom kompoziciyi ye operator superpoziciyi funkcij Zhodnih komirok pam yati operatoriv prisvoyennya cikliv ni tim bilshe blok shem chi komand perehodu 1 Shirsha koncepciya funkcijnogo programuvannya viznachaye nabir spilnih pravil ta tem zamist pereliku vidminnostej vid inshih paradigm Do takih sho chasto vvazhayutsya vazhlivimi nalezhat funkciyi vishogo poryadku 2 ta funkciyi pershogo klasu zamikannya ta rekursiya Do inshih poshirenih mozhlivostej funkcijnih mov programuvannya nalezhat prodovzhennya sistema tipizaciyi Gindli Milnera en nechitki obchislennya vklyuchno z ale ne obmezhuyuchis linivimi obchislennyami ta monadi Osnovnu uvagu funkcijnim movam programuvannya osoblivo chisto funkcijnim pridilili akademichni doslidniki Odnak do vidomih funkcijnih mov programuvannya yaki vikoristovuyutsya v promislovosti ta komercijnomu programuvanni nalezhit Erlang paralelni programi R statistika Mathematica simvolni obchislennya J ta K finansovij analiz ta specializovani movi programuvannya napriklad XSLT Istotnij vpliv na funkcijne programuvannya zdijsnilo lyambda chislennya mova programuvannya APL mova programuvannya Lisp ta novisha mova programuvannya Haskell Funkcijne programuvannya chasto nazivayut funkcionalnim hocha naspravdi funkcionalno oriyentovane programuvannya ce insha kategoriya de osnovoyu ye komponuvannya program u ryad programnih produktiv dzherelo Zmist 1 Movi programuvannya 2 Istoriya 3 Koncepciyi 3 1 Funkciyi vishih poryadkiv 3 2 Chisti funkciyi 3 3 Rekursiya 3 4 Pidhid do obchislennya argumentiv 3 5 FP v nefunkcijnih movah 3 6 Strukturi danih 4 Stili programuvannya 5 Osoblivosti 5 1 Silni storoni 5 1 1 Pidvishennya nadijnosti kodu 5 1 2 Zruchnist organizaciyi modulnogo testuvannya 5 1 3 Mozhlivosti optimizaciyi pri kompilyaciyi 5 1 4 Mozhlivosti paralelizmu 5 2 Nedoliki 6 Div takozh 7 Primitki 8 Literatura 9 Dodatkova literatura 10 Dzherela informaciyi 11 PosilannyaMovi programuvannya RedaguvatiNajvidomishimi movami funkcijnogo programuvannya ye XQuery Haskell chista funkcijna mova Nazvana na chest Gaskella Karri Lisp Dzhon Makkarti 1958 maye bezlich nashadkiv najsuchasnishi z yakih Scheme i Common Lisp ML Robin Milner 1979 z nini vikoristovuvanih dialektiv vidomi Standard ML i Objective Caml Miranda Devid Terner 1985 yakij zgodom dav rozvitok movi Haskell Erlang Joe Armstrong 1986 funkcijna mova z modellyu aktoriv Nemerle gibridna funkcijno imperativna mova F funkcijna mova dlya platformi NET Scala gibridna ob yektno oriyentovana funkcijna mova dlya platformi Java Clojure funkcijna mova dlya platformi Java She ne povnistyu funkcijni pochatkovi versiyi Lisp i APL zrobili osoblivij vnesok do stvorennya i rozvitku funkcijnogo programuvannya Piznishi versiyi Lisp taki yak Scheme a takozh rizni varianti APL pidtrimuvali vlastivosti i koncepciyi funkcijnoyi movi Yak pravilo interes do funkcijnih mov programuvannya osoblivo chisto funkcijnih buv bilshe naukovij nizh komercijnij Prote takim primitnim movam yak Erlang OCaml Haskell Scheme pislya 1986 a tak samo specifichnim R statistika Mathematica simvolichna matematika J i K finansovij analiz i XSLT XML znahodili zastosuvannya v industriyi komercijnogo programuvannya Taki shiroko poshireni deklarativni movi yak SQL i Lex Yacc mistyat deyaki elementi funkcijnogo programuvannya voni osterigayutsya vikoristovuvati zminni Istoriya RedaguvatiLyambda chislennya stalo teoretichnoyu bazoyu dlya opisu i obchislennya funkcij Buduchi matematichnoyu abstrakciyeyu a ne movoyu programuvannya vono sklalo bazis majzhe vsih mov funkcijnogo programuvannya na sogodni Podibne teoretichne ponyattya kombinatorna logika ye bilsh abstraktnim nizh l chislennya i bulo stvoreno ranishe Cya logika vikoristovuyetsya v deyakih ezoterichnih movah napriklad v Unlambda I l chislennya i kombinatorna logika buli rozrobleni dlya bilsh yasnogo j tochnogo opisu principiv i osnov matematiki 3 Pershoyu funkcijnoyu movoyu buv Lisp stvorenij Dzhonom Makkarti v period jogo roboti v Massachusetskomu tehnologichnomu instituti v kinci p yatdesyatih i realizovanij spochatku dlya IBM 700 7000 en Lisp viznachiv mnozhinu ponyat funkcijnoyi movi hocha pri comu spoviduvav ne tilki paradigmu funkcijnogo programuvannya 4 Podalshim rozvitkom Lispu stali taki movi yak Scheme i Dylan Mova obrobki informaciyi Information Processing Language en IPL inodi viznachayetsya yak najpersha mashinno funkcijna mova 5 Ce mova assemblernogo tipu dlya roboti zi spiskom simvoliv U nomu bulo ponyattya generatora yakij vikoristovuvav funkciyu yak argument a takozh oskilki ce mova assemblernogo rivnya vin mozhe pozicionuvatisya yak mova sho maye funkciyi vishogo poryadku Odnak v cilomu IPL akcentovano na vikoristannya imperativnih ponyat 6 Kennet Ajverson rozrobiv movu APL na pochatku shistdesyatih prodokomentuvavshi yiyi v svoyij knizi A Programming Language ISBN 9780471430148 7 APL spraviv znachnij vpliv na movu FP en stvorenu Dzhonom Bekusom Na pochatku dev yanostih Ajverson i Rodzher Guj en stvorili nastupnika APL mova programuvannya J U seredini dev yanostih Artur Vitni en yakij ranishe pracyuvav z Ajversonom stvoriv movu K yaka zgodom vikoristovuvalas u finansovij industriyi na komercijnij osnovi U simdesyatih v universiteti Edinburga Robin Milner stvoriv movu ML a Devid Terner pochinav rozrobku movi SASL v universiteti Sent Endryusa i zgodom movu Miranda v universiteti mista Kent U kincevomu pidsumku na osnovi ML buli stvoreni kilka mov sered yakih najbilsh vidomi Objective Caml i Standard ML Takozh v simdesyatih zdijsnyuvalasya rozrobka movi programuvannya pobudovanoyi za principom Scheme realizaciya ne lishe funkcijnoyi paradigmi sho otrimala opis u vidomij roboti Lambda Papers a takozh u knizi visimdesyat p yatogo roku Structure and Interpretation of Computer Programs v yakij principi funkcijnogo programuvannya buli doneseni do bilsh shirokoyi auditoriyi dzherelo U visimdesyatih Per Martin Lef stvoriv intuyicionistsku teoriyu tipiv takozh zvanu konstruktivnoyu U cij teoriyi funkcijne programuvannya otrimalo konstruktivnij dokaz togo sho ranishe bulo vidomo yak zalezhnij tip Ce dalo potuzhnij poshtovh do rozvitku dialogovogo dokazu teorem i do podalshogo stvorennya bezlichi funkcijnih mov Haskell buv stvorenij v kinci visimdesyatih u sprobi poyednati bezlich idej otrimanih u hodi doslidzhennya funkcijnogo programuvannya 8 Koncepciyi RedaguvatiDeyaki koncepciyi ta paradigmi specifichni dlya funkcijnogo programuvannya i v osnovnomu chuzhi imperativnomu programuvannyu vklyuchayuchi ob yektno oriyentovane programuvannya Tim ne mensh movi programuvannya zvichajno yavlyayut soboyu gibrid dekilkoh paradigm programuvannya tomu zdebilshogo imperativni movi programuvannya mozhut vikoristovuvati yaki nebud z cih koncepcij dzherelo Funkciyi vishih poryadkiv Redaguvati Dokladnishe Funkciya vishogo poryadkuFunkciyi vishih poryadkiv ce taki funkciyi yaki mozhut prijmati yak argumenti i povertati inshi funkciyi 9 Matematiki taku funkciyu chastishe nazivayut operatorom napriklad operator vzyattya pohidnoyi abo integralnij operator Funkciyi vishih poryadkiv dozvolyayut vikoristovuvati karring peretvorennya funkciyi vid pari argumentiv u funkciyu sho bere svoyi argumenti po odnomu Ce peretvorennya otrimalo svoyu nazvu na chest Gaskella Karri Chisti funkciyi Redaguvati Chistimi nazivayut funkciyi yaki ne mayut pobichnih efektiv vvodu vivodu i pam yati voni zalezhat tilki vid svoyih parametriv i povertayut tilki svij rezultat Chisti funkciyi volodiyut dekilkoma korisnimi vlastivostyami bagato z yakih mozhna vikoristovuvati dlya optimizaciyi kodu Yaksho rezultat chistoyi funkciyi ne vikoristovuyetsya vin mozhe buti vidalenij bez shkodi dlya inshih viraziv Rezultat vikliku chistoyi funkciyi mozhe buti keshovanij tobto zberezhenij v tablici znachen razom z argumentami vikliku Yaksho nadali funkciya viklikayetsya z cimi zh argumentami yiyi rezultat mozhe buti vzyatij pryamo z tablici bez yiyi povtornogo obchislennya inodi ce nazivayetsya principom prozorosti posilan Keshuvannya cinoyu nevelikoyi zatrati pam yati dozvolyaye istotno zbilshiti shvidkodiyu i zmenshiti glibinu rekursiyi v deyakih algoritmah Yaksho nemaye niyakoyi zalezhnosti sered danih mizh dvoma chistimi funkciyami to poryadok yih obchislennya mozhna pominyati inakshe kazhuchi obchislennya chistih funkcij zadovolnyaye principam thread safe Yaksho vsya mova ne dopuskaye pobichnih efektiv to mozhna vikoristovuvati bud yaku politiku obchislennya Ce nadaye svobodu kompilyatoru kombinuvati i reorganizovuvati obchislennya viraziv u programi napriklad viklyuchiti derevopodibni strukturi Hocha bilshist kompilyatoriv imperativnih mov programuvannya rozpiznayut chisti funkciyi i vidalyayut zagalni pidvirazi dlya viklikiv chistih funkcij voni ne mozhut robiti ce zavzhdi dlya poperedno skompilovanih bibliotek yaki yak pravilo ne nadayut cyu informaciyu Deyaki kompilyatori taki yak gcc z metoyu optimizaciyi nadayut programistu klyuchovi slova dlya poznachennya chistih funkcij 10 Fortran 95 dozvolyaye poznachati funkciyi yak pure 11 Rekursiya Redaguvati Dokladnishe RekursiyaU funkcijnih movah cikl zazvichaj realizuyetsya u viglyadi rekursiyi Vlasne u funkcijnoyi paradigmi programuvannya nemaye takogo ponyattya yak cikl Rekursivni funkciyi viklikayut sami sebe dozvolyayuchi operaciyi vikonuvatisya znovu i znovu Dlya vikoristannya rekursiyi mozhe znadobitisya velikij stek ale cogo mozhna uniknuti v razi hvostovoyi rekursiyi Hvostova rekursiya mozhe buti rozpiznana i optimizovana kompilyatorom v kod oderzhuvanij pislya kompilyaciyi analogichnoyi iteraciyi v imperativnij movi programuvannya 12 Standarti movi Scheme vimagayut rozpiznavati i optimizuvati hvostovu rekursiyu Optimizuvati hvostovu rekursiyu mozhna shlyahom peretvorennya programi v stili vikoristannya prodovzhen pri yiyi kompilyaciyi yak odin iz sposobiv 13 Rekursivni funkciyi mozhna uzagalniti za dopomogoyu funkcij vishih poryadkiv vikoristovuyuchi napriklad katamorfizm i anamorfizm abo zgortka i rozgornennya Funkciyi takogo rodu vidigrayut rol takogo ponyattya yak cikl v imperativnih movah programuvannya dzherelo Pidhid do obchislennya argumentiv Redaguvati funkcijni movi mozhna klasifikuvati po tomu yak obroblyayutsya argumenti funkciyi v procesi yiyi obchislennya Tehnichno vidminnist polyagaye v denotacijnij semantici virazu Napriklad pri strogomu pidhodi do obchislennya virazu print len 2 1 3 2 1 0 5 4 na vihodi bude pomilka oskilki v tretomu elementi spisku prisutnye dilennya na nul Pri nestrogomu pidhodi znachennyam virazu bude 4 oskilki dlya obchislennya dovzhini spisku znachennya jogo elementiv strogo kazhuchi ne vazhlivi i mozhut vzagali ne obchislyuvatisya Pri strogomu aplikativnomu poryadku obchislennya zazdalegid pidrahovuyutsya znachennya vsih argumentiv pered obchislennyam samoyi funkciyi Pri nestrogomu pidhodi normalnij poryadok obchislennya znachennya argumentiv ne obchislyuyutsya do tih pir poki yih znachennya ne znadoblyatsya pri obchislenni funkciyi 14 Yak pravilo nestrogij pidhid realizuyetsya u viglyadi redukciyi grafa Nestroge obchislennya vikoristovuyetsya za zamovchuvannyam v dekilkoh chisto funkcijnih movah u tomu chisli Miranda Clean i Haskell dzherelo FP v nefunkcijnih movah Redaguvati Principovo nemaye pereshkod dlya napisannya program u funkcijnomu stili na movah yaki tradicijno ne vvazhayutsya funkcijnimi tochno tak samo yak programi v ob yektno oriyentovanomu stili mozhna pisati na strukturnih movah Deyaki imperativni movi pidtrimuyut tipovi dlya funkcijnih mov konstrukciyi taki yak funkciyi vishogo poryadku i spiskovi vklyuchennya list comprehensions sho polegshuye vikoristannya funkcijnogo stilyu v cih movah Prikladom mozhe buti programuvannya na movi Python U movi C pokazhchiki na funkciyu yak tipi argumentiv mozhut buti vikoristani dlya stvorennya funkcij vishogo poryadku Funkciyi vishogo poryadku i vidkladena spiskovomu struktura realizovani v bibliotekah C U movi C versiyi 3 0 i vishe mozhna vikoristovuvati l funkciyi dlya napisannya programi v funkcijnomu stili U skladnih movah tipu Algol 68 nayavni zasobi metaprogramuvannya faktichno dopovnennya movi novimi konstrukciyami dozvolyayut stvoriti specifichni dlya funkcijnogo stilyu ob yekti danih i programni konstrukciyi pislya chogo mozhna pisati funkcijni programi z yih vikoristannyam Strukturi danih Redaguvati Chisto funkcionalni strukturi danih chasto predstavleni inakshe nizh yih procedurni analogi 15 Napriklad masiv z postijnim dostupom i chasom onovlennya ye osnovnim komponentom bilshosti imperativnih mov i bagato imperativnih struktur danih takih yak gesh tablicya i dvijkova kupa zasnovani na masivah Masivi mozhna zaminiti asociativnimi masivami abo spiskami vipadkovogo dostupu yaki dopuskayut suto funkcionalnu realizaciyu ale mayut logarifmichnij dostup i chas onovlennya Chisto funkcionalni strukturi danih mayut stijkist tobkto vlastivist zberigati poperedni versiyi strukturi danih nezminnimi U Clojure postijni strukturi danih vikoristovuyutsya yak funkcionalni alternativi yihnim imperativnim analogam Stili programuvannya RedaguvatiImperativni programi mayut shilnist akcentuvati poslidovnosti krokiv dlya vikonannya yakoyis diyi a funkcijni programi do roztashuvannya i kompoziciyi funkcij chasto ne poznachayuchi tochnoyi poslidovnosti krokiv Prostij priklad dvoh rishen odniyeyi zadachi vikoristovuyetsya odna i ta zh mova Python ilyustruye ce Imperativnij stil target stvoriti porozhnij spisok for item in source list dlya kozhnogo elementa vihidnogo spisku trans1 G item zastosuvati funkciyu G trans2 F trans1 zastosuvati funkciyu F target append trans2 dodati peretvorenij element u spisok funkcijna versiya viglyadaye inakshe funkcijnij stil Movi FP chasto mayut vbudovanu funkciyu compose compose2 lambda A B lambda x A B x target map compose2 F G source list Na vidminu vid imperativnogo stilyu sho opisuye kroki sho vedut do dosyagnennya meti funkcijnij stil opisuye matematichni vidnosini mizh danimi i metoyu Osoblivosti RedaguvatiOsnovnoyu osoblivistyu funkcijnogo programuvannya yaka viznachaye yak perevagi tak i nedoliki danoyi paradigmi ye te sho v nij realizuyetsyamodel obchislen bez staniv Yaksho imperativna programa na bud yakomu etapi vikonannya maye stan tobto sukupnist znachen vsih zminnih i viroblyaye pobichni efekti to chisto funkcijna programa ni cilkom ni chastinami stanu ne maye i pobichnih efektiv ne viroblyaye Te sho v imperativnih movah robitsya shlyahom prisvoyuvannya znachen zminnim v funkcijnih dosyagayetsya shlyahom peredachi viraziv v parametri funkcij Bezposerednim naslidkom staye te sho chisto funkcijna programa ne mozhe zminyuvati vzhe nayavni v nij dani a mozhe lishe porodzhuvati novi shlyahom kopiyuvannya ta abo rozshirennya starih Naslidkom togo zh ye vidmova vid cikliv na korist rekursiyi Silni storoni Redaguvati Pidvishennya nadijnosti kodu Redaguvati Privabliva storona obchislen bez staniv pidvishennya nadijnosti kodu za rahunok chitkoyi strukturizaciyi ta vidsutnosti neobhidnosti vidstezhennya pobichnih efektiv Bud yaka funkciya pracyuye tilki z lokalnimi danimi i pracyuye z nimi zavzhdi odnakovo nezalezhno vid togo de yak i za yakih obstavin vona viklikayetsya Nemozhlivist mutaciyi danih pri koristuvanni nimi v riznih miscyah programi viklyuchaye poyavu pomilok yaki tyazhko viyaviti takih napriklad yak vipadkove prisvoyuvannya nevirnogo znachennya globalnij zminnij v imperativnij programi Zruchnist organizaciyi modulnogo testuvannya Redaguvati Oskilki funkciya u funkcijnomu programuvanni ne mozhe porodzhuvati pobichni efekti zminyuvati ob yekti ne mozhna yak useredini oblasti vidimosti tak i zovni na vidminu vid imperativnih program de odna funkciya mozhe vstanoviti yaku nebud zovnishnyu zminnu sho zchituyetsya inshoyu funkciyeyu Yedinim efektom vid obchislennya funkciyi ye povernenij yij rezultat i yedinij chinnik yakij vplivaye na rezultat ce znachennya argumentiv Takim chinom ye mozhlivist protestuvati kozhnu funkciyu v programi prosto obchislivshi yiyi vid riznih naboriv znachen argumentiv Pri comu mozhna ne turbuvatisya ni pro viklik funkcij v pravilnomu poryadku ni pro pravilne formuvanni zovnishnogo stanu Yaksho bud yaka funkciya v programi prohodit modulni testi to mozhna buti vpevnenim u yakosti vsiyeyi programi V imperativnih programah perevirka znachennya sho povertayetsya funkciyi nedostatnya funkciya mozhe modifikuvati zovnishnij stan yakij tezh potribno pereviryati chogo ne potribno robiti v funkcijnih programah 16 Mozhlivosti optimizaciyi pri kompilyaciyi Redaguvati Tradicijno zgaduvanoyu pozitivnoyu osoblivistyu funkcijnogo programuvannya ye te sho vono dozvolyaye opisuvati programu v tak zvanomu deklarativnomu viglyadi koli zhorstka poslidovnist vikonannya bagatoh operacij neobhidnih dlya obchislennya rezultatu v yavnomu viglyadi ne zadayetsya a formuyetsya avtomatichno v procesi obchislennya funkcij Cya obstavina a takozh vidsutnist staniv daye mozhlivist zastosovuvati do funkcijnih program dosit skladni metodi avtomatichnoyi optimizaciyi Mozhlivosti paralelizmu Redaguvati She odniyeyu perevagoyu funkcijnih program ye te sho voni nadayut najshirshi mozhlivosti dlya avtomatichnogo rozparalelyuvannya obchislen Oskilki vidsutnist pobichnih efektiv garantovano v bud yakomu vikliku funkciyi zavzhdi pripustime paralelne obchislennya dvoh riznih parametriv poryadok yih obchislennya ne mozhe vplinuti na rezultat vikliku Nedoliki Redaguvati Nedoliki funkcijnogo programuvannya viplivayut z tih zhe samih jogo osoblivostej Vidsutnist prisvoyuvannya i zamina yih na porodzhennya novih danih prizvodyat do neobhidnosti postijnogo vidilennya ta avtomatichnogo zvilnennya pam yati tomu v sistemi vikonannya funkcijnoyi programi obov yazkovim komponentom staye visokoefektivnij zbirach smittya Nestroga model obchislen prizvodit do neperedbachuvanogo poryadku vikliku funkcij sho stvoryuye problemi pri vvedenni vivedenni de poryadok vikonannya operacij ye vazhlivim Krim togo ochevidno funkciyi vvedennya v svoyemu prirodnomu viglyadi napriklad getchar iz standartnoyi biblioteki movi C ne ye chistimi oskilki zdatni povertati rizni znachennya dlya odnih i tih zhe argumentiv i dlya usunennya cogo potribni pevni hitroshi Dlya podolannya nedolikiv funkcijnih program vzhe pershi movi funkcijnogo programuvannya vklyuchali ne tilki chisto funkcijni zasobi ale i mehanizmi imperativnogo programuvannya prisvoyennya cikl neyavnij PROGN buli vzhe v LISP i Vikoristannya takih zasobiv dozvolyaye virishiti deyaki praktichni problemi ale oznachaye vidhid vid idej i perevag funkcijnogo programuvannya i napisannya imperativnih program funkcijnimi movami U chistih funkcijnih movah ci problemi virishuyutsya inshimi zasobami napriklad v movi Haskell vvid vivid realizovanij za dopomogoyu monadi netrivialnoyi koncepciyi zapozichenoyi z teoriyi kategorij Div takozh RedaguvatiKategoriya Funkcijni movi programuvannya Formalni metodi Nezminnij ob yekt Invariant programuvannya Lyambda chislennya Funkcijni movi programuvannya Paradigma programuvannya Porivnyannya mov programuvannya Vidkladeni obchislennya Anamorfizm KatamorfizmPrimitki Redaguvati Henderson 1983 Predislovie redaktora perevoda Volfengagen V E Konstrukcii yazykov programmirovaniya Priemy opisaniya M AO Centr YurInfoR 2001 276 s ISBN 5 89158 079 9 Rodzher Penrouz Glava 2 Lyambda chislennya Chercha Novij rozum korolya Pro komp yuteri mislenni i zakonah fiziki The Emperors New Mind Concerning Computers Minds and The Laws of Physics Editorial URSS 2003 ISBN 5 354 00005 X perevidannya ISBN 978 5 382 01266 7 2011 J Harrison 1997 Gl 3 l chislennya yak mova programuvannya U svoyih memuarah Gerbert Sajmon 1991 Models of My Life pp 189 190 ISBN 0 465 04640 1 stverdzhuye sho jogo Al Nyuell i Kliff Shou yakih chasto nazivayut batkami shtuchnogo intelektu za napisannya programi Logic Theorist en avtomatichno dovodit teoremi z Principia Mathematica Dlya togo shob dosyagti cogo voni povinni buli pridumati movu i paradigmu yaku retrospektivno mozhna rozglyadati yak funkcijne programuvannya History of Programming Languages IPL Arhiv originalu za 1 listopada 2006 Procitovano 6 grudnya 2012 XIV APL Session History of Programming Language Richard L Wexelbblat Academic Press 1981 S 661 693 ISBN 0 12 745040 8 Pol G yudak en September 1989 Conception evolution and application of functional programming languages ACM Computing Surveys 21 3 359 411 V A Potapenko Funkciyi vishih poryadkiv Tehniki funkcijnogo programuvannya s 8 GCC Declaring Attributes of Functions XL Fortran for AIX V13 1 Language Reference Pure procedures Fortran 95 Tail call optimization Revised5 Report on the Algorithmic Language Scheme 3 5 Proper tail recursion N A Roganova funkcijne programuvannya Navchalnij posibnik dlya studentiv vishih navchalnih zakladiv M GINFO 2002 260 s Stor 14 p 3 1 Ledachi i energijni obchislennya Okasaki Chris 1998 Purely functional data structures Cambridge U K Cambridge University Press ISBN 978 1 139 81174 3 OCLC 822565696 Ahmechet V funkcijne programuvannya dlya vsih Literatura RedaguvatiFunkcijne programuvannya Navch posib dlya stud vishih navch zakl sho navch za spec Program zabezp avtomatiz sistem V M Zayac Nac un t Lviv politehnika L Beskid Bit 2003 159 c Bibliogr 15 nazv Dodatkova literatura RedaguvatiSudomir V Vikoristannya funkcijnoyi paradigmi pri programuvanni mikrokontroleriv Materiali Mizhnarodnoyi studentskoyi naukovo tehnichnoyi konferenciyi Prirodnichi ta gumanitarni nauki Aktualni pitannya 2019 S 52 52Dzherela informaciyi RedaguvatiFunctional programming stattya v anglomovnij vikipediyi Peter Henderson Functional Programming Application and Implementation 1980 P Henderson Funkcionalnoe programmirovanie primenenie i realizaciya perevod s angl Moskva Mir 1983Posilannya RedaguvatiWhy functional programming matters by John Hughes The Computer Journal Vol 32 No 2 1989 pp 98 107 1 pro perevagi funkcijnogo programuvannya Otrimano z https uk wikipedia org w index php title Funkcijne programuvannya amp oldid 38365713