Apply
Në matematikë dhe shkenca kompjuterike, apply është një funksion që zbaton një funksion mbi argumente. Është thelbësor për gjuhët e programimit që rrjedhin nga llogaritja lambda, të tilla si LISP dhe Scheme, dhe gjithashtu për gjuhët funksionale . Ai ka një rol në studimin e semantikës denotative të programeve kompjuterike, sepse është një funksion i vazhdueshëm në rend të plotë të pjesshëm . Apply është gjithashtu një funksion i vazhdueshëm në teorinë e homotopisë, dhe, në të vërtetë, mbështet të gjithë teorinë: ai lejon që një shformim të homotopisë të shihet si një shteg i vazhdueshëm në hapësirën e funksioneve. Po kështu, mutacionet (rifaktorimet) e vlefshme të programeve kompjuterike mund të shihen si ato që janë "të vazhdueshme" në topologjinë Scott .
Përcaktimi më i përgjithshëm për apply është në teorinë e kategorisë, ku është e drejtë ngjitur me currying në kategoritë monoidale të mbyllura . Një rast i veçantë i kësaj janë kategoritë e mbyllura karteziane, gjuha e brendshme e të cilave është thjesht llogaritja lambda e tipuar .
Programimi
[Redakto | Redakto nëpërmjet kodit]Funksioni apply
[Redakto | Redakto nëpërmjet kodit]Apply është gjithashtu emri i një funksioni të veçantë në shumë gjuhë, i cili merr një funksion dhe një listë, dhe përdor listën si listën e argumenteve të vetë funksionit, sikur funksioni të thirrej me elementët e listës si argumente. Kjo është e rëndësishme në gjuhët me funksione variadike, sepse kjo është mënyra e vetme për të thirrur një funksion me një numër të papërcaktuar (në kohën e përpilimit) argumentesh.
Lisp dhe Skema e Përbashkët
[Redakto | Redakto nëpërmjet kodit]Në Common Lisp apply është një funksion që zbaton një funksion në një listë argumentesh (vini re këtu se "+" është një funksion variatik që merr çdo numër argumentesh):
(apply #'+ (list 1 2))
Në mënyrë të ngjashme në Scheme:
(apply + (list 1 2))
Shkoni
[Redakto | Redakto nëpërmjet kodit]Në Go, argumentet variadike të tiposura thjesht mblidhen në një pjesë. Thtirrësi mund të kalojë në mënyrë eksplicite një slice në vend të argumenteve variadike, duke shtuar një ...
për të bërë slice argumentin. Kjo mund të bëhet vetëm për një parametër variatik. Thirrësi nuk mund të aplikojë një grup argumentesh për parametrat jo-variadikë, pa përdorur reflektim.Stampa:Sxhl
Haskell
[Redakto | Redakto nëpërmjet kodit]Në Haskell, funksionet mund të zbatohen me anë të një ballafaqimi të thjeshtë:
func param1 param2 ...
JavaScript
[Redakto | Redakto nëpërmjet kodit]
Në JavaScript, objektet e funksionit kanë një metodë apply
, argumenti i parë është vlera e fjalës kyçe të this
funksioni brenda funksionit; e dyta është lista e argumenteve:
func.apply(null, args);
PHP
[Redakto | Redakto nëpërmjet kodit]
Në PHP, apply
quhet call_user_func_array
:
call_user_func_array('func_name', $args);
Python dhe Ruby
[Redakto | Redakto nëpërmjet kodit]Në Python dhe Ruby, i njëjti shënim me yll që përdoret në përcaktimin e funksioneve variadike përdoret për thirrjen e një funksioni në një varg dhe grup përkatësisht:
func(*args)
Python fillimisht kishte një funksion apply, por ky u zhvlerësua në favor të yllit në 2.3 dhe u hoq në 3.0. [1]
Vetia universale
[Redakto | Redakto nëpërmjet kodit]Konsideroni një funksion , domethënë, ku shënimi i kllapave shënon hapësirën e funksioneve nga A në B. Me anë të currying, ekziston një funksion unik . Pastaj Apply ofron morfizmin universal
- ,
të tillë që
ose, në mënyrë të njëvlershme merret diagrami i lëvizjes
Më saktësisht, curry dhe app janë funktorë të përngjitur .
- ^ "Non-essential built-in functions". Python Library Reference. 8 shkurt 2005. Marrë më 19 maj 2013.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)