Skip to main content

Mi az első osztályú funkció?

Az első osztályú funkció egy olyan kifejezés, amelyet a számítógépes programozásban és a számítógépes tudományban alkalmazhatnak a számítógépes programozási nyelvre, ha a funkciók kezelése az iránymutatásokhoz tartozik, bár ezen iránymutatások teljes körét és mélységét hivatalosan nem fogadják el.Az első osztályú funkció számítógépes programozási nyelv eléréséhez a támogatni kívánt fő jellemző a funkciók átadása érvekként más funkciókhoz.Egy függvényt is hozzá kell rendelni egy változóhoz, hogy tárolhassa.Egyéb tulajdonságok, amelyek meghatározására használják, hogy mi képezi az első osztályú funkciót, magában foglalja a függvény dinamikus előállításának képességét futásidejűleg és a nyelv azon képességét, hogy egy másik függvény visszatérési értéke legyen.Azok a nyelvek, amelyek támogatják az első osztályú funkció architektúráját, magas szintű absztrakciót tesznek lehetővé, és egyes esetekben mechanizmust biztosítanak a futási idő dinamikus kódgenerációjának.Egy funkció átadása a programon belül a változókon keresztül nem feltétlenül egyedi azoknak a nyelveknek, amelyek natív módon valósítják meg az első osztályú funkció támogatását.Az a képesség, hogy a kódblokkokat a funkciókhoz továbbítsák, vagy a nem dinamikus kódot egy függvényből adják vissza, sok programozási nyelven könnyen elvégezhető különböző mechanizmusok révén.Az első osztályú funkciónyelv meghatározásának egyik szigorú részét azonban az, hogy a funkciók mint változók kezelését natív módon kell elvégezni, metaadatok, például feltételes meghatározások nélkül, és anélkül, hogy egy fordító felhívná egy darabot egy darab újrahasznosítása céljából.kód.A kifejezés funkciót arra is használják, hogy a saját maguk által meghívott független kódblokkokra utaljanak, vagyis nem tartalmazzák az objektumorientált programozási nyelvekben ismertetett kódblokkokat, vagy a blokkokat, amelyeket néha más nyelveken eljárásoknak hívnak.Úgy tervezték, hogy lehetővé tegye az első osztályú funkciókódot, néhány tervezési mintát közvetlenül, mint más nyelveken valósíthat meg.Egy függvény változóként fogadhat egy függvényt, majd új funkciót készíthet, és visszaadhatja az új függvényt a hívó kódhoz, így ez létrehoz egy mechanizmust a programkód futási idejű létrehozásához.Ez a nyelven belüli valós idejű, felhasználó által bevitt funkciókat is használhatja anélkül, hogy olyan folyamatok használnának, mint például a reflexió vagy az értékelés.Újra felhasználni és olyan rekurzív matematikai algoritmusokat hajtani, amelyek képesek önmagukkal módosítani egyenleteiket előrehaladásuk során.Az első osztályú mechanizmusok egyik hasonló, fejlettebb felhasználása a polimorfizmus megvalósítása olyan nyelvekben, amelyekben nem kifejezetten megvalósulnak.Ez lehetővé teszi, hogy a funkciók ugyanazzal a függvény aláírással hívják meg, de a kódot annak a kontextusnak a alapján hajtják végre, amelyben hívták, néha egy kulcsfüggvény átadásával a polimorf funkcióhoz.