Co je prvotřídní funkce?

„First-Class Function“ 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ě dohodnuta. 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.

Když se termín „funkce“ používá ve volně definovaném smyslu, koncept 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ě, aniž by bylo použito metadata, jako jsou podmíněné definice, a bez volání kompilátoru k přepracování kusu kódu. 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 neobsahují 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ž je jazykNavrženo tak, aby umožňovalo prvotřídní funkční kód, lze některé vzory návrhu 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í funkcí v reálném čase v reálném čase v jazyce bez použití procesů, jako je reflexe nebo vyhodnocení.

Některá z nejzákladnějších využití pro architekturu prvotřídních funkcí zahrnují vytváření obecných funkcí, které lze snadno znovu použít a implementovat rekurzivní matematické algoritmy, které jsou schopny s postupem modifikovat své rovnice. 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 na základě kontextu v WhiCh, které se to nazývalo, někdy předáním funkce klíčové funkce polymorfní funkci.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?