www.wikidata.uk-ua.nina.az
Karruvannya abo karring angl currying v informatici metod obchislennya funkciyi vid bagatoh argumentiv peretvorennyam yiyi v poslidovnist funkcij odnogo argumenta Ce peretvorennya bulo vvedeno Mojseyem Shejnfinkelem i otrimalo svoyu nazvu vid svogo poshiryuvacha Gaskelya Karri Operaciya karruvannya ye funkciyeyu vishogo poryadku oskilki vona prijmaye i povertaye funkciyu Karrovani funkciyi mozhut vikoristovuvatis u vsih movah programuvannya sho pidtrimuyut zamikannya Hocha ne karrovani funkciyi obchislyuyutsya shvidshe oskilki ne potrebuyut chastkovogo zastosuvannya ta stvorennya zamikannya Zmist 1 Viznachennya 2 Chastkove zastosuvannya funkciyi 3 Matematichna tochka zoru 4 Prikladi 4 1 C 11 4 2 C 3 0 4 3 Erlang 4 4 F 4 5 Common Lisp 4 6 Haskell 4 7 Hope 4 8 JavaScript 4 9 Lisp Scheme 4 10 OCaml 4 11 Python 4 12 Perl 4 13 PHP 4 14 Ruby 4 15 Scala 4 16 Objective C 4 17 Google Go 4 18 MATLAB 4 19 Visual Prolog 4 20 SWI Prolog 5 Div takozh 6 PrimitkiViznachennya red Dlya funkciyi dvoh zminnih f X Y Z displaystyle scriptstyle f colon X times Y to Z nbsp karruvannya ce operaciya curry f X Y Z displaystyle scriptstyle text curry f colon X to Y to Z nbsp Tobto curry f displaystyle scriptstyle text curry f nbsp maye argument X displaystyle scriptstyle X nbsp i povertaye funkciyu odniyeyi zminnoyi Y Z displaystyle scriptstyle Y to Z nbsp Chastkove zastosuvannya funkciyi red Karruvannya ce ne ye zmenshennya kilkosti argumentiv funkciyi za dopomogoyu yih fiksaciyi ce pobudova poslidovnosti funkcij odnogo argumenta kozhna z yakih povertaye nastupnu Dlya funkciyi f X Y Z N displaystyle scriptstyle f colon X times Y times Z to N nbsp karruvannya ce poslidovnist funkcij curry f X Y Z N displaystyle scriptstyle text curry f colon X to Y to Z to N nbsp Znahodzhennya znachennya funkciyi ce f 1 2 3 displaystyle scriptstyle f 1 2 3 nbsp a pri obchislenni znachennya karrovanoyi funkciyi f curried 1 2 3 displaystyle scriptstyle f text curried 1 2 3 nbsp dlya kozhnogo argumenta pri jogo pidstanovci otrimuyemo novu funkciyu v yaku pidstavlyayemo nastupnij argument i t d Tobto f curried 1 displaystyle scriptstyle f text curried 1 nbsp povertaye funkciyu odnogo argumenta yaka v svoyu chergu tezh povertaye funkciyu a ne funkciyu dvoh argumentiv Matematichna tochka zoru red V teoretichnij informatici ye takij analitichnij aparat yak lyambda chislennya yakij mozhna zastosuvati tilki dlya funkcij odniyeyi zminnoyi Z tochki zoru teoriyi mnozhin karruvannya ce vidpovidnist mizh mnozhinami C A B displaystyle scriptstyle C A times B nbsp ta C B A displaystyle scriptstyle left C B right A nbsp Prikladi red C 11 red include lt functional gt auto curry int x gt std function lt int int gt return x int y gt int return x y int a curry 4 5 9 auto curry 4 curry 4 int b curry 4 5 9 C 3 0 red Func lt int Func lt int int gt gt curry x gt y gt x y curry 4 5 9 Erlang red Curry fun A gt fun B gt A B end end Curry 3 4 gt 7 F red let add a b a b a gt a gt a let addOne add 1 a gt a let x addOne 10 11 Common Lisp red defun curry x lambda y x y curry 2 3 povertaye 5 cherez osoblivosti semantiki vertaye pomilku na vidminu vid Scheme funcall curry 2 3 povertaye 5 Haskell red curry x y gt x y takozh mozhna napisati curry curry 2 3 povertaye 5 Hope red curry turn a binary function into a function producing a function Named after Haskell B Curry e g curry f x y f x y dec curry alpha beta gt gamma gt alpha gt beta gt gamma curry f lt lambda x gt lambda y gt f x y curry 1 gt gt lambda y gt 1 y num gt num curry 1 2 gt gt 3 num JavaScript red function curry x return function y return x y curry 4 5 povertaye 9 Pochinayuchi z versiyi ECMAScript 5 mozhlivij kod const curry fn x gt y gt fn x y const add x y gt x y curry add 4 5 povertaye 9 Lisp Scheme red viznachennya define curry x lambda y x y viklik let curr curry 4 curr 5 rezultat 9 abo tak curry 4 5 OCaml red let curry x function y gt x y val curry int gt int gt int lt fun gt let a curry 4 5 int 9 OCaml ye movoyu iz simejstva ML v movah cogo simejstva privedennya bagatomisnoyi funkciyi v karrovane predstavlennya vikonuyetsya avtomatichno let curry x y x y val curry int gt int gt int lt fun gt let a curry 4 val a int gt int lt fun gt a 5 int 9 Python red curry lambda fn x lambda y fn x y add lambda x y x y curry add 4 5 gt 9 Perl red sub curry my x shift return sub return x shift curry 4 gt 5 9 PHP red Pochinayuchi z PHP 5 3 v yakomu bulo dodano zamikannya 1 function curry x return function y use x return x y a curry 5 b a 10 15 Ruby red def curry x Proc new y x y end curry 1 call 2 gt 3 Scala red def curry x Int y Int x y curry Int Int Int f curry 4 f 5 Int 9 Objective C red Priklad realizaciyi z vikoristannyam blokiv blocks typedef int Add int y Add curry int x return Block copy int y return x y int res curry 5 6 NSLog i res gt gt 11 Google Go red package main func main curry func x int func int int return func y int int return x y print curry 2 3 5 MATLAB red curry x y x y a curry 5 disp a 6 11 Visual Prolog red F Y X X Y write F 2 3 5 SWI Prolog red t A B A gt B call call t 3 0 trueDiv takozh red Linivi obchislennyaPrimitki red Currying in PHP Arhiv originalu za 7 zhovtnya 2014 Procitovano 3 zhovtnya 2014 Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno kviten 2020 Otrimano z https uk wikipedia org w index php title Karring informatika amp oldid 37167873