Apply

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

Funksioni apply

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

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

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

Haskell, funksionet mund të zbatohen me anë të një ballafaqimi të thjeshtë:

func param1 param2 ...

JavaScript

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

PHP, apply quhet call_user_func_array :

call_user_func_array('func_name', $args);

Python dhe Ruby

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

Konsideroni një funksion , domethënë, ku shënimi i kllapave shënon hapësirën e funksioneve nga AB. 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 .

Universal property of the exponential object
Vetia universale e objektit eksponencial
  1. ^ cite_ref-1 "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ë!)

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.