Hva er en førsteklasses funksjon?

"Førsteklasses funksjon" er et begrep som kan brukes i dataprogrammering og informatikk på et dataprogrammeringsspråk hvis behandlingen av funksjoner overholder et sett med retningslinjer, selv om det ikke er enighet om fullstendig omfang og dybde i disse retningslinjene. . For å ha et førsteklasses funksjon programmeringsspråk for datamaskiner, er hovedfunksjonen som må støttes muligheten til å overføre funksjoner som argumenter til andre funksjoner. En funksjon må også kunne tilordnes en variabel slik at den kan lagres. Andre egenskaper som brukes til å bestemme hva som utgjør en førsteklasses funksjon inkluderer muligheten til dynamisk å generere en funksjon under kjøretid og språkets evne til å ha en funksjon som en returverdi for en annen funksjon. Språk som støtter førsteklasses funksjonsarkitektur gir mulighet for et høyt abstraksjonsnivå, og gir i noen tilfeller også en mekanisme for generering av dynamisk kodekjøring.

Når begrepet "funksjon" brukes i en løst definert forstand, er ikke begrepet å føre en funksjon i et program gjennom variabler nødvendigvis unikt for språk som innfødte implementering av førsteklasses funksjonsstøtte. Muligheten til å sende blokker med kode til funksjoner, eller returnere ikke-dynamisk kode fra en funksjon, kan lett gjøres på mange programmeringsspråk gjennom forskjellige mekanismer. En av de strenge delene av definisjonen av et førsteklasses funksjonsspråk er imidlertid at håndteringen av funksjoner som variabler må gjøres innfødt, uten bruk av metadata som betingede definisjoner og uten å ringe en kompilator for å rekompilere et stykke kode. Begrepet "funksjon" brukes også for å referere til uavhengige kodeblokker som kalles på egen hånd, noe som betyr at de ikke inkluderer kodeblokkene kjent som metoder i objektorienterte programmeringsspråk eller blokker som noen ganger kalles prosedyrer på andre språk.

Når et språk er designet for å tillate førsteklasses funksjonskode, kan noen designmønstre implementeres mer direkte enn på andre språk. En funksjon kan motta en funksjon som en variabel, og deretter konstruere en ny funksjon og returnere den nye funksjonen til ringekoden, slik at dette skaper en mekanisme for oppretting av løpetid for programkode. Dette kan også gjøre bruk av sanntids brukerinputte funksjoner mulig på språket uten bruk av prosesser som refleksjon eller evaluering.

Noen av de mest grunnleggende bruksområdene for førsteklasses funksjonsarkitektur inkluderer å lage generiske funksjoner som lett kan gjenbrukes og implementere rekursive matematiske algoritmer som er i stand til å selv modifisere ligningene når de skrider frem. En lignende, mer avansert bruk for førsteklasses mekanismer er implementering av polymorfisme på språk der den ikke er implementert spesielt. Dette kan tillate funksjoner å bli kalt med den samme funksjonssignaturen, men utføre kode basert på konteksten den ble kalt i, noen ganger ved å overføre en nøkkelfunksjon til den polymorfe funksjonen.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?