funksjonell programmering intro pensum

En begrepsliste for funksjonell programmering, som dekker de viktigste konseptene og terminologien som er nødvendig for å forstå og anvende funksjonell programmering i praksis.

Thea27·36 flashkort·36 spørsmål
universitetcomputer_scienceprogramming
0
Kjent
1 / 36
0
Lærer
Forside

Hva er funksjonell programmering?

Trykk for å vende
Bakside

En programmeringsparadigme som behandler beregning som evaluering av matematiske funksjoner.

Trykk for å vende
Skjønner
Lærer fortsatt

Quiz(36 spørsmål)

Spørsmål 1 av 36

1. Hva beskriver best funksjonell programmering?

Begreper i dette studiesettet(36)

Grunnleggende konsepter(16)

Hva er funksjonell programmering?

En programmeringsparadigme som behandler beregning som evaluering av matematiske funksjoner.

Ren funksjon

En funksjon som gir samme resultat for samme inngang og har ingen bivirkninger.

Sideeffekt

Når en funksjon påvirker tilstanden til programmet utenfor sin egen kontekst. Eksempel: skriver til skjerm.

Høyere ordens funksjon

En funksjon som kan ta andre funksjoner som argumenter eller returnere dem som resultater.

Immutable data

Data som ikke kan endres etter opprettelse, noe som forhindrer bivirkninger.

Referansesemantikk vs. verdisemantikk

Referansesemantikk peker på data, mens verdisemantikk arbeider med kopier av data.

Lambdauttrykk

En anonym funksjon definert med et uttrykk. Eksempel: x → x + 1.

Høyere ordens funksjon - eksempel

funksjon map(f, liste): Anvender funksjonen f på hvert element i listen.

Currying

Prosessen med å transformere en funksjon med flere argumenter til en sekvens av funksjoner med ett argument.

Rekursjon

En metode der en funksjon kaller seg selv for å løse et problem. Kriteriet for stopp er viktig.

Kombinator

En funksjon som kombinerer to eller flere funksjoner for å danne en ny funksjon.

Hva er en liste i funksjonell programmering?

En samling av elementer, ofte immutable, som kan behandles med rekursive funksjoner.

Pattern matching

En teknikk for å dekonstruere data ved å sammenligne dem med mønstre.

Funksjonell komposisjon

Prosessen med å kombinere to eller flere funksjoner for å lage en ny funksjon. Eksempel: (f∘g)(x) = f(g(x)).

Lazy evaluation

En strategi for å beregne verdier bare når de trengs, i stedet for på forhånd.

Sann eller usann: Funksjonell programmering er alltid mer effektiv enn imperativ programmering.

Usann. Effektiviteten avhenger av konteksten og implementeringen.

Funksjoner og høyere ordens funksjoner(12)

Hva er en funksjon?

En funksjon er en blokker av kode som tar inn parameter(e) og returnerer en verdi. Funksjoner kan også brukes som argumenter for andre funksjoner.

Høyere ordens funksjoner

Funksjoner som tar inn andre funksjoner som argumenter eller returnerer dem. Eksempler er 'map', 'filter' og 'reduce'.

Sann eller usann: Funksjoner kan behandles som data.

Sann. Funksjoner i funksjonell programmering er første klasse borgere, de kan lagres i variabler og sendes som argumenter.

Eksempel på en høyere ordens funksjon

Funksjonen 'map' tar en funksjon og en liste, og anvender funksjonen på hvert element i listen: map(f, [1, 2, 3]) → [f(1), f(2), f(3)]

Fullfør setningen: En funksjon kan ...

... returnere en annen funksjon, noe som muliggjør skapelsen av lukkede miljøer og delvis anvendelse.

Forskjell på ren og uregelmessig funksjon

Ren funksjon: Har ingen bivirkninger, alltid samme output for samme input. Uregelmessig funksjon: Kan ha bivirkninger og variabel output.

Hva er en lambda-funksjon?

En anonym funksjon som kan defineres i én linje. For eksempel: 'f = λx. x + 1'.

Sann eller usann: Alle funksjoner kan brukes som høyere ordens funksjoner.

Sann. Enhver funksjon kan brukes som argument for en annen funksjon.

Beskriv 'filter'-funksjonen.

En høyere ordens funksjon som tar en predikatfunksjon og en liste, og returnerer en ny liste med elementer som oppfyller predikatet.

Eksempel på delvis anvendelse

Funksjonen 'add' kan delvis anvendes: add = (x, y) → x + y add5 = add(5) → En ny funksjon som tar ett argument og legger til 5.

Hva er en closures?

En funksjon som husker verdiene fra sin omgivelse, selv etter at omgivelsene er ferdige. Det gir tilgang til variabler definert utenfor funksjonen.

Kjennetegn ved høyere ordens funksjoner

- Tar funksjoner som argumenter - Returnerer funksjoner - Kan bruke funksjoner i mapper og filtre.

Immutable data og tilstandshåndtering(8)

Immutable data

Data som ikke kan endres etter at det er opprettet. Dette sikrer forutsigbarhet og sikkerhet i programmering.

Hva er tilstandshåndtering?

Prosessen med å kontrollere og oppdatere tilstanden til et program. I funksjonell programmering oppnås dette med ren funksjonalitet.

True or False: Mutable data er anbefalt i funksjonell programmering.

False. Mutable data kan føre til uventede bivirkninger og gjør debugging vanskeligere.

Sammenlign immutable og mutable data.

- Immutable: Kan ikke endres etter opprettelse. - Mutable: Kan endres, fører ofte til bivirkninger.

Hvordan håndterer funksjonell programmering tilstand?

Ved å bruke ren funksjonalitet som returnerer nye data uten å endre eksisterende. Dette reduserer bivirkninger.

Fyll inn det tomme: I funksjonell programmering er ____ en nøkkelstrategi for tilstandshåndtering.

Immutable data

Hva er en fordel med immutable data?

Forbedrer trådsikkerhet og forutsigbarhet, noe som gjør det lettere å forstå programflyten.

Eksempel på tilstandshåndtering.

Funksjon: oppdaterer saldo: ```haskell oppdaterSaldo saldo beløp = saldo + beløp ```

Spørsmål i dette studiesettet(36)

1. Hva beskriver best funksjonell programmering?

A.En programmeringsparadigme som fokuserer på å bruke matematiske funksjoner.
B.En stil der programmerere skriver kode fra bunnen av.
C.En teknikk for å bygge programvare ved hjelp av objektorientering.
D.En prosess for å forbedre ytelsen til datamaskiner.

2. Hva er en funksjon?

A.En blokker av kode som tar inn parameter(e) og returnerer en verdi.
B.En variabel som lagrer data.
C.En metode for å skrive kommentarer i koden.
D.En samling av lister.

3. Hva beskriver best konseptet immutable data?

A.Data som ikke kan endres etter opprettelse.
B.Data som kan endres når som helst.
C.Data som kun kan leses, men ikke skrives.
D.Data som lagres i minnet midlertidig.

4. Hva er en ren funksjon?

A.En funksjon som alltid gir det samme resultatet for identiske innganger.
B.En funksjon som kun kan brukes en gang.
C.En funksjon som krever ekstern tilstand for å fungere.
D.En funksjon som må ha flere argumenter.

5. Hva kjennetegner en høyere ordens funksjon?

A.Den tar inn andre funksjoner som argumenter.
B.Den kan bare brukes med heltall.
C.Den returnerer alltid en liste.
D.Den kan ikke ta inn parametere.

6. Hvilken metode brukes mest i funksjonell programmering for å håndtere tilstand?

A.Ved å bruke ren funksjonalitet.
B.Ved å endre globale variabler.
C.Ved å bruke mutable data.
D.Ved å lagre tilstand i objekter.

7. Hvilken av følgende beskriver best en sideeffekt?

A.Når en funksjon endrer tilstanden til programmet utenfor sin egen kontekst.
B.Når en funksjon returnerer flere verdier.
C.Når en funksjon tar inn flere argumenter.
D.Når en funksjon er tidskompleksitetsoptimal.

8. Sann eller usann: Funksjoner kan behandles som data.

A.Sann
B.Usann
C.Bare ved bruk av lambda-funksjoner
D.Kun for høyere ordens funksjoner

9. Hvilket av følgende er IKKE en fordel med immutable data?

A.Forbedret trådsikkerhet.
B.Reduserte bivirkninger.
C.Enklere debugging.
D.Økt kompleksitet.

10. Hva er en høyere ordens funksjon?

A.En funksjon som kan ta andre funksjoner som argumenter.
B.En funksjon som alltid returnerer en liste.
C.En funksjon som ikke kan ta inn argumenter.
D.En funksjon som er skapt for å håndtere store datamengder.

11. Hva gjør 'map'-funksjonen?

A.Den anvender en funksjon på hvert element i en liste.
B.Den sorterer en liste i stigende rekkefølge.
C.Den fjerner duplikater fra en liste.
D.Den beregner summen av alle elementene i en liste.

12. Hva skjer når mutable data endres?

A.Det kan føre til uventede bivirkninger.
B.Det forbedrer ytelsen.
C.Det gjør koden mer lesbar.
D.Det forhindrer feil.

13. Hva betyr 'immutable data'?

A.Data som ikke kan endres etter å ha blitt opprettet.
B.Data som kan endres flere ganger.
C.Data som alltid er i minnet.
D.Data som kan være både mutable og immutable.

14. Fullfør setningen: En funksjon kan ...

A.... returnere en annen funksjon.
B.... bare ta inn tall som argumenter.
C.... ikke ha noen returnverdi.
D.... bare brukes i hovedprogrammet.

15. Hvilket av følgende beskriver best tilstandshåndtering?

A.Kontrollering og oppdatering av programtilstand.
B.Lagring av data i en database.
C.Endring av data i minnet.
D.Opprettelse av nye objekter.

16. Hva er forskjellen mellom referansesemantikk og verdisemantikk?

A.Referansesemantikk peker på data, mens verdisemantikk arbeider med kopier av data.
B.Verdisemantikk er mer effektiv enn referansesemantikk.
C.Referansesemantikk kan kun brukes i objektorientert programmering.
D.Verdisemantikk er kun relevant for primitive datatyper.

17. Hva er en ren funksjon?

A.En funksjon som alltid gir samme output for samme input.
B.En funksjon som har bivirkninger.
C.En funksjon som kun brukes i lambda-definisjoner.
D.En funksjon som kan ta inn flere argumenter.

18. Når bør man bruke immutable data?

A.Når man ønsker forutsigbarhet i programmet.
B.Når man trenger fleksibilitet i datamodellen.
C.Når man arbeider med store datasett.
D.Når man utvikler med mutable data.

19. Hva er et lambdauttrykk?

A.En anonym funksjon definert med et uttrykk.
B.En funksjon med minst to argumenter.
C.En funksjon som alltid har bivirkninger.
D.En funksjon som automatisk oppretter en liste.

20. Hvilket av følgende er et eksempel på en lambda-funksjon?

A.f = λx. x + 1
B.def add(x, y): return x + y
C.add = (x, y) -> x + y
D.function add(x, y) { return x + y; }

21. Hvilket utsagn er riktig om mutable data?

A.De kan endres etter opprettelse.
B.De kan ikke endres etter opprettelse.
C.De er alltid mer effektive enn immutable data.
D.De er kun brukt i objektorientert programmering.

22. Hvordan fungerer currying?

A.Det omdanner en funksjon med flere argumenter til en sekvens av funksjoner med ett argument.
B.Det forenkler alle funksjoner til en enkelt verdi.
C.Det kombinerer flere funksjoner til én funksjon.
D.Det lar deg bruke funksjoner med variabel antall argumenter.

23. Hvilket utsagn er usant?

A.Alle funksjoner kan brukes som høyere ordens funksjoner.
B.Høyere ordens funksjoner kan ikke ta inn primitive typer.
C.Høyere ordens funksjoner kan returnere andre funksjoner.
D.Høyere ordens funksjoner kan ta funksjoner som argumenter.

24. Hva er et eksempel på hvordan tilstand kan oppdateres i funksjonell programmering?

A.Funksjon som returnerer en ny saldo basert på innskudd.
B.Direkte endring av saldo i et globalt objekt.
C.Bruk av mutable objekter for å lagre saldo.
D.Tilgang til saldo via en statisk metode.

25. Hva er rekursjon?

A.En metode der en funksjon kaller seg selv for å løse et problem.
B.En måte å lage løkker i funksjonell programmering.
C.En type datagenerator.
D.En prosess for å lagre funksjoner i minnet.

26. Hva gjør 'filter'-funksjonen?

A.Den returnerer elementer fra en liste som oppfyller et gitt predikat.
B.Den summerer alle elementene i en liste.
C.Den sorterer en liste.
D.Den lager en kopi av en liste.

27. Hva gjør en kombinator?

A.Kombinerer to eller flere funksjoner for å lage en ny funksjon.
B.Oppretter et nytt datanivå.
C.Fjerner bivirkninger fra en funksjon.
D.Endrer argumentene til en funksjon.

28. Hva er delvis anvendelse?

A.Når en funksjon er brukt med færre argumenter enn den tar.
B.Når en funksjon ikke returnerer noe.
C.Når en funksjon kun brukes én gang.
D.Når en funksjon tar inn en liste som argument.

29. Hva er en liste i funksjonell programmering?

A.En samling av elementer, ofte immutable, som kan behandles med rekursive funksjoner.
B.En sekvens av tall som alltid er mutable.
C.En datatypen som bare kan inneholde strenger.
D.En struktur som kun brukes for å lagre funksjoner.

30. Hva er en closure?

A.En funksjon som husker verdiene fra sin omgivelse.
B.En type loop i programmering.
C.En funksjon som alltid returnerer null.
D.En spesifikk datatype.

31. Hva er pattern matching?

A.En teknikk for å dekonstruere data ved å sammenligne dem med mønstre.
B.En metode for å organisere data i databaser.
C.En prosess for å lagre data i minnet.
D.En type algoritme for sortering.

32. Hvilke av følgende er ikke et kjennetegn ved høyere ordens funksjoner?

A.De kan ta funksjoner som argumenter.
B.De kan returnere funksjoner.
C.De kan ikke brukes med primitive datatyper.
D.De kan brukes i mapper og filtre.

33. Hva er funksjonell komposisjon?

A.Prosessen med å kombinere to eller flere funksjoner for å lage en ny funksjon.
B.Bruken av funksjoner i en databasetransaksjon.
C.Prosessen med å bryte opp funksjoner til mindre enheter.
D.En metode for å lage tilfeldige funksjoner.

34. Hva betyr lazy evaluation?

A.En strategi for å beregne verdier kun når de trengs.
B.En metode for å optimere minnebruk.
C.En type algoritme for sortering av data.
D.En prosess for å redusere kodekompleksitet.

35. Er følgende påstand sann eller usann? Funksjonell programmering er alltid mer effektiv enn imperativ programmering.

A.Usann. Effektiviteten avhenger av konteksten og implementeringen.
B.Sann. Funksjonell programmering er alltid raskere.
C.Usann. Imperativ programmering er alltid bedre.
D.Sann. Funksjonell programmering bruker alltid mindre minne.

36. Hvilken av følgende beskriver best begrepet 'combination' i funksjonell programmering?

A.En prosess for å kombinere flere funksjoner til en ny funksjon.
B.En type data som ikke kan endres etter opprettelse.
C.En metode for å skape bivirkninger i programmet.
D.En teknikk for å evaluere funksjoner på forhånd.

Relaterte studiesett

Lag ditt eget studiesett

Last opp en PDF, lim inn notatene dine, eller beskriv et tema – AI genererer flashkort, quizer og mer på sekunder.