Skip to main content

Co je prvotřídní funkce?

Funkce prvotřídní je termín, který lze aplikovat v počítačovém programování a informatiku na počítačový programovací jazyk, pokud jeho ošetření funkcí dodržuje soubor pokynů, ačkoli plný rozsah a hloubka těchto pokynů není formálně dohodnut.Chcete-li mít prvotřídní funkční počítačový programovací jazyk, hlavním rysem, který je třeba podpořit, je schopnost předávat funkce jako argumenty k jiným funkcím.Funkce musí být také schopna přiřadit proměnnou, takže může být uložena.Mezi další vlastnosti použité k určení, co představuje prvotřídní funkci, patří schopnost dynamicky generovat funkci za běhu a schopnost jazyka mít funkci jako návratovou hodnotu jiné funkce.Jazyky, které podporují architekturu prvotřídní funkce, umožňují vysokou úroveň abstrakce a v některých případech také poskytují mechanismus pro generování dynamického kódu za běhu.Předávání funkce v rámci programu prostřednictvím proměnných nemusí být nutně jedinečné pro jazyky, které nativně implementují prvotřídní funkci.Schopnost předávat bloky kódu na funkce nebo vrátit ne-dynamický kód z funkce lze snadno provést v mnoha programovacích jazycích prostřednictvím různých mechanismů.Jednou z přísných částí definice prvotřídního funkčního jazyka je však to, že manipulace s funkcemi jako proměnných musí být prováděno nativně, bez použití metadat, jako jsou podmíněné definice, a bez volání kompilátoru, aby překompiloval kuskód.Termín funkce se také používá k označení nezávislých kódových bloků, které jsou vyvolány samy o sobě, což znamená, že nezahrnují kódové bloky známé jako metody v objektově orientovaných programovacích jazycích nebo bloky, které se někdy nazývají postupy v jiných jazycích.

Když jazykje navržen tak, aby umožňoval prvotřídní funkční kód, některé návrhové vzory lze implementovat přímo než v jiných jazycích.Funkce může přijímat funkci jako proměnnou a poté vytvořit novou funkci a vrátit novou funkci do volacího kódu, takže to vytvoří mechanismus pro vytvoření času běhu programového kódu.To také může umožnit použití uživatelských funkcí v reálném čase v reálném čase v jazyce bez použití procesů, jako je odraz nebo hodnocení.Být znovu použit a implementovat rekurzivní matematické algoritmy, které jsou schopny samo-modifikovat jejich rovnice, jak postupují.Jedním podobným, pokročilejším využitím pro prvotřídní mechanismy je implementace polymorfismu v jazycích, ve kterých není konkrétně implementován.To může umožnit volání funkcí se stejným podpisem funkce, ale provádět kód založený na kontextu, ve kterém byl nazýván, někdy předáním klíčové funkce polymorfní funkci