Член : Увайсці |Рэгістрацыя |Загрузіць веды
Пошук
функцыянальнае праграмаванне [Мадыфікацыя ]
У інфарматыцы, функцыянальнае праграмаванне гэта парадыгма праграмавання, стыль пабудовы структуры і элементаў кампутарных праграм-то трактуе вылічэнне як ацэнка матэматычных функцый і пазбягаюць змяненняў стану прадстаўлення і змяняных дадзеных. Гэта дэкларатыўная парадыгма праграмавання, што азначае, што праграмаванне выконваецца з выразамі або дэклярацыямі замест заяў. У функцыянальным кодзе, выходную значэнне функцыі залежыць толькі ад аргументаў, што перадаюцца ў функцыю, так што выклік функцыі Р двойчы з тым жа значэннем аргументу х дае той жа вынік F (X) кожны раз; гэта, у адрозненні ад працэдур у залежнасці ад мясцовага або глабальнага стану, якое можа прывесці да розных вынікаў у розны час пры выкліку з тымі ж аргументамі, але іншым станам праграмы. Ліквідацыю пабочных эфектаў, то ёсць змены ў стане, якія не залежаць ад функцыі уваходаў, могуць зрабіць гэта нашмат лягчэй зразумець і прадказаць паводзіны праграмы, якая з'яўляецца адным з ключавых матываў для развіцця функцыянальнага праграмавання.
Функцыянальнае праграмаванне мае свае вытокі ў лямбда-вылічэння, фармальнай сістэмы, распрацаванай у 1930-х гадах, каб даследаваць вычислимости, то праблема дазволу, вызначэнне функцыі, прымяненне функцыі, і рэкурсіі. Шматлікія функцыянальныя мова праграмавання можна разглядаць як прапрацоўкі на лямбда-вылічэнні. Іншая вядомая дэкларатыўная парадыгма праграмавання, лагічнае праграмаванне, заснавана на адносінах.
У адрозненне ад гэтага, імператыўнае праграмаванне змяняе стан з дапамогай каманд у зыходным кодзе, найпросты прыклад, які з'яўляецца прызначэнне. Імператыў праграмаванне мае функцыі, не ў матэматычным сэнсе, але ў сэнсе падпраграм. Яны могуць мець пабочныя эфекты, якія могуць змяніць значэнне стану праграмы. Функцыі без вяртаюцца значэнняў таму мае сэнс. З-за гэтага, яны не маюць спасылачныя празрыстасць, гэта значыць, той самы выраз мовы можа прывесці да розных значэнняў у розны час у залежнасці ад стану выконваемай праграмы.
Функцыянальныя мовы праграмавання шмат у чым было падкрэслена ў навуковых колах, а не ў распрацоўцы камерцыйнага праграмнага забеспячэння. Тым не менш, вядомыя мовы праграмавання, якія падтрымліваюць функцыянальнае праграмаванне, такія як Common Lisp, Scheme, Clojure, Wolfram мова (таксама вядомы як Mathematica), Ракетка, Erlang, OCaml, Haskell і F # выкарыстоўваюцца ў прамысловых і камерцыйных прыкладаннях з вялікім разнастайнасцю арганізацый. JavaScript, адзін з найбольш шырока распаўсюджаных у свеце моў, валодае ўласцівасцямі нетипизированного функцыянальнага мовы, у дадатак да імператывам і аб'ектна-арыентаваных парадыгмаў. Функцыянальнае праграмаванне таксама падтрымліваецца ў некаторых прадметна-арыентаваных моў праграмавання, такіх як R (статыстыка), J, K і Q з Kx Systems (фінансавы аналіз), XQuery / XSLT (XML), і Opal. Шырокія распаўсюджванне прадметна-арыентаваны дэкларатыўныя мовы, такія як SQL і Lex / Yacc выкарыстоўваць некаторыя элементы функцыянальнага праграмавання, асабліва ў цураючыся змяняных значэнняў.
Праграмаванне ў функцыянальным стылі таксама можа быць выканана ў мовах, якія спецыяльна не прызначаныя для функцыянальнага праграмавання. Напрыклад, імператыўны мова праграмавання Perl быў прадметам кнігі, якая апісвае, як прымяняць функцыянальныя канцэпцыі праграмавання. Гэта таксама дакладна для мовы праграмавання PHP. C 11, Java 8, і C # 3.0 усе дададзеныя канструкцыі для палягчэння функцыянальнага стылю. Мова Julia таксама прапануе функцыянальныя магчымасці праграмавання. Цікавы выпадак з'яўляецца тое, што Scala - гэта часта напісана ў функцыянальным стылі, але наяўнасць пабочных эфектаў і змяняных станах змесціце яго ў шэрай зоне паміж імператыўны і функцыянальнымі мовамі.
[дэкларатыўнае праграмаванне][імператыў праграмаванне][Распрацоўка канчатковага карыстальніка][паралельныя вылічэнні][Інфарматыка][кампутарная праграма][Computability][R: мова праграмавання]
1.гісторыя
2.канцэпцыі
2.1.Функцыі першага класа і больш высокага парадку
2.2.чыстыя функцыі
2.3.Рэкурсія
2.4.Строгае супраць нястрогі ацэнкі
2.5.сістэмы тыпу
2.6.спасылачныя празрыстасць
2.7.Функцыянальнае праграмаванне ў нефункцыянальных мовах
2.8.структуры дадзеных
3.Параўнанне з імператыўны праграмаваннем
3.1.сімуляцыя стан
3.2.пытанні эфектыўнасці
3.3.кадаванне стыляў
3.3.1.PHP
3.3.2.пітон
3.3.3.Haskell
3.3.4.Perl 6
3.3.5.Erlang
3.3.6.эліксір
3.3.7.шепелявость
3.3.8.Clojure
3.3.9.Котлін
3.3.10.JavaScript
3.3.11.SequenceL
3.3.12.Tcl
3.3.13.Scala
4.Выкарыстанне ў прамысловасці
5.У адукацыі
[Загружаць Больш за Змест ]


Аўтарскае права @2018 Lxjkh