Tenta: funktionell programmering grunder

Denna uppsättning flashcards täcker grunderna inom funktionell programmering, inklusive viktiga begrepp, tekniker och exempel. Perfekt för studenter som förbereder sig för tentor eller föreläsningar i datorvetenskap.

LiamLindbergq9·48 flashcards·48 frågor
universitetcomputer_scienceprogramming
0
Kan
1 / 48
0
Övar
Framsida

Vad är funktionell programmering?

Tryck för att vända
Baksida

En programmeringsparadigm som fokuserar på att använda och kombinera funktioner.

Tryck för att vända
Kan
Övar fortfarande

Quiz(48 frågor)

Fråga 1 av 48

1. Vad beskriver bäst funktionell programmering?

Begrepp i det här studiesetet(48)

Grundläggande begrepp(16)

Vad är funktionell programmering?

En programmeringsparadigm som fokuserar på att använda och kombinera funktioner.

Definiera ren funktion.

En funktion vars utdata endast beror på indata och har inga biverkningar.

Sant eller falskt: Funktioner kan vara förstklassiga objekt.

Sant. Funktioner kan lagras i variabler, skickas som argument och returneras från andra funktioner.

Vad är en högre ordningens funktion?

En funktion som tar en eller flera funktioner som indata eller returnerar en funktion.

Jämför imperativ och funktionell programmering.

- Imperativ: Steg-för-steg-instruktioner - Funktionell: Använder funktioner och uttryck

Vad betyder immutabilitet?

Objekt kan inte ändras efter de har skapats; nya objekt skapas istället.

Fyll i blank: I funktionell programmering är _____ centrala.

funktioner

Ge ett exempel på en ren funktion.

Funktionen f(x)=x+1\displaystyle f(x) = x + 1 är en ren funktion.

Vad är ett lambda-uttryck?

Ett kortfattat sätt att definiera anonyma funktioner i programmering.

Vad innebär tillståndshantering?

Hantera tillstånd genom att skapa nya data snarare än att ändra existerande.

Sant eller falskt: Funktionell programmering stöder tillståndsförändringar.

Falskt. Funktionell programmering undviker tillståndsförändringar för att bevara renhet.

Vad är rekursion?

En funktion som anropar sig själv för att lösa ett problem.

Ge exempel på en högre ordningens funktion.

Funktionen map(f,lista)\displaystyle map(f, lista) där f\displaystyle f är en funktion som appliceras på varje element.

Fyll i blank: Funktionell programmering använder ofta _____ för att kombinera funktioner.

komposition

Vad är en funktionskomposition?

Att kombinera två funktioner f\displaystyle f och g\displaystyle g till en ny funktion h(x)=f(g(x))\displaystyle h(x) = f(g(x)).

Definiera laziness.

En teknik där uttryck utvärderas endast när de behövs, för att spara resurser.

Funktioner och högre ordningens funktioner(16)

Vad är en funktion?

En funktion är en avgränsad kodbit som tar in argument och returnerar ett resultat.

Definiera högre ordningens funktioner.

Funktioner som kan ta andra funktioner som argument eller returnera funktioner.

Sann eller falsk: Funktioner är förstklassiga medborgare.

Sann. De kan tilldelas variabler och skickas som argument.

Ge ett exempel på en anonym funktion.

Exempel: `let add = (x, y) => x + y;`

Vad betyder "callback-funktion"?

En funktion som skickas som argument för att anropas senare.

Jämför vanliga funktioner och högre ordningens funktioner.

- Vanliga: Tar in data. - Högre ordning: Tar in funktioner.

Fyll i tomrummet: En funktion som returnerar en funktion kallas _____.

en högre ordningens funktion.

Ge ett exempel på en högre ordningens funktion.

Exempel: `function makeCounter() { let count = 0; return () => count++; }`

Vad är en lambda-funktion?

En anonym funktion definierad med en kort syntax, ofta i form av `() => {}`.

Vad gör funktionen `map`?

Den applicerar en funktion på varje element i en lista och returnerar en ny lista.

Sann eller falsk: Anonyma funktioner kan inte returneras.

Falsk. Anonyma funktioner kan mycket väl returneras.

Vad används `reduce` för?

Att sammanfoga alla element i en lista till ett enda värde med en funktion.

Ge ett exempel på att använda `filter`.

Exempel: `let evens = numbers.filter(n => n % 2 === 0);`

Vad är en currying-funktion?

En funktion som omvandlar en funktion som tar flera argument till en sekvens av funktioner som var och en tar ett argument.

Vad gör `forEach`?

Den kör en specifik funktion för varje element i en lista, utan att returnera något.

Definiera komposition av funktioner.

Att skapa en ny funktion genom att kombinera två eller flera funktioner.

Immutabilitet och tillståndshantering(16)

Vad är immutabilitet?

Immutabilitet innebär att objekt inte kan förändras efter att de skapats. Detta förenklar tillståndshantering.

Fördelar med immutabilitet?

- Trådsäkerhet - Förenklad felsökning - Inga oönskade sidoeffekter

Immutabla objekt i exempel?

I funktionell programmering används ofta listor som är immutabla; t.ex. att skapa en ny lista istället för att ändra den existerande.

Vad är tillståndshantering?

Tillståndshantering refererar till hur data och dess status hanteras och manipuleras under programmets körning.

True or False: Immutabilitet förhindrar alla buggar.

False. Immutabilitet minskar risken för buggar, men eliminerar dem inte helt.

Skillnad mellan immutabilitet och mutabilitet?

Immutabilitet: kan inte förändras. Mutabilitet: kan förändras, vilket kan leda till komplexitet och buggar.

Vad innebär referensdelning?

Referensdelning innebär att flera variabler refererar till samma objekt. Kan leda till oönskade ändringar om objektet är mutabelt.

Exempel på immutabel typ?

I många språk är strängar (strings) immutabla. Att ändra en sträng skapar en ny sträng istället.

Fill the blank: I funktionell programmering är _______ ett viktigt koncept.

immutabilitet

Hur hanteras tillstånd i funktionell programmering?

Genom att skapa nya versioner av data snarare än att förändra existerande data direkt.

Vad är en pure function?

En funktion vars resultat endast beror på dess inparametrar och som inte har sidoeffekter.

Vad händer vid förändring av tillstånd?

Det kan leda till oförutsägbara resultat och buggar, särskilt i flertrådade miljöer.

Fördelar med tillståndshantering?

- Förutsägbarhet - Enkelhet - Förenklar testning

Vad är en state monad?

En struktur som gör det möjligt att hantera tillstånd på ett funktionellt sätt, genom att kapsla in tillståndet.

Causality in immutability?

Immutabilitet minskar biverkningar, vilket stabiliserar programflödet.

Vad är en 'snapshot'?

En 'snapshot' är en ögonblicksbild av tillståndet av ett objekt eller system vid en viss tidpunkt.

Frågor i det här studiesetet(48)

1. Vad beskriver bäst funktionell programmering?

A.En programmeringsparadigm som använder och kombinerar funktioner.
B.En teknik för att optimera processorer.
C.En typ av databasprogrammering.
D.En metod för att designa användargränssnitt.

2. Vad är syftet med en funktion?

A.Att kapsla in kod för att återanvända den.
B.Att lagra data temporärt.
C.Att skapa variabler.
D.Att deklarera objekt.

3. Vilken av följande påståenden är korrekt?

A.Immutabilitet förhindrar helt buggar.
B.Immutabilitet minskar risken för buggar.
C.Immutabilitet gör koden oöverskådlig.
D.Immutabilitet är irrelevant.

4. Vilken egenskap har en ren funktion?

A.Den har inga biverkningar och ger samma utdata för samma indata.
B.Den kan ändra globala variabler.
C.Den kan anropa andra funktioner med sidoreferenser.
D.Den används endast för matematiska operationer.

5. Vilken av följande är ett exempel på en högre ordningens funktion?

A.function apply(fn, value) { return fn(value); }
B.let square = x => x * x;
C.function greet() { console.log('Hello'); }
D.let num = 5;

6. Vad innebär immutabilitet i programmering?

A.Objekt kan inte förändras efter att de skapats.
B.Objekt kan förändras fritt.
C.Objekt refererar alltid till samma minnesadress.
D.Objekt kan endast förändras i vissa situationer.

7. Sant eller falskt: Funktioner kan lagras och manipulera som vanliga variabler.

A.Sant
B.Falskt
C.Beroende av programmeringsspråket
D.Endast i vissa fall

8. Sann eller falsk: En callback-funktion är alltid en anonym funktion.

A.Falsk
B.Sann
C.Oftast sann
D.Oftast falsk

9. Vilken fördel ger immutabilitet i flertrådiga program?

A.Minskad trådsäkerhet.
B.Ökad komplexitet.
C.Trådsäkerhet.
D.Inte några fördelar.

10. Vad är en högre ordningens funktion?

A.En funktion som kan ta funktioner som argument.
B.En funktion som kan anropa sig själv.
C.En funktion med högre prioritet.
D.En funktion som returnerar ett heltal.

11. Vad gör funktionen `filter`?

A.Den skapar en ny array med element som uppfyller ett villkor.
B.Den applicerar en funktion på varje element och returnerar ett värde.
C.Den kombinerar alla element till ett enda värde.
D.Den itererar över en array utan att returnera något.

12. Vilket av följande exempel är immutabelt?

A.Strängar.
B.Array.
C.Hashmap.
D.Listor med referenser.

13. Vad kännetecknar imperativ programmering jämfört med funktionell programmering?

A.Imperativ programmering använder steg-för-steg-instruktioner.
B.Funktionell programmering använder alltid loopar.
C.Imperativ programmering är alltid snabbare.
D.Funktionell programmering kräver mer minne.

14. Vad innebär 'currying'?

A.Att dela upp en funktion med flera argument i en sekvens av funktioner.
B.Att kombinera flera funktioner till en.
C.Att returnera en funktion direkt.
D.Att utföra matematiska operationer.

15. Vad förstås med tillståndshantering?

A.Hur data hanteras och manipuleras under programmets körning.
B.Att alltid använda globala variabler.
C.Att undvika att spara data.
D.Hur man skapar grafiska gränssnitt.

16. Vad innebär immutabilitet i funktionell programmering?

A.Objekt kan inte ändras efter skapande.
B.Objekt kan ändras när som helst.
C.Objekt kan endast ändras under vissa villkor.
D.Objekt kan skapas på nytt men inte modifieras.

17. Vilken av följande funktioner returnerar en ny array?

A.map
B.forEach
C.filter
D.reduce

18. Är påståendet sant eller falskt? 'Immutabilitet förhindrar alla buggar.'

A.Sant.
B.Falskt.
C.Bara i vissa språk.
D.Det är oklart.

19. Fyll i blank: I funktionell programmering är _____ centrala.

A.funktioner
B.variabler
C.loopar
D.klasser

20. Vad gör `reduce`?

A.Sammanfogar element i en lista till ett enda värde.
B.Skapar en ny lista med vissa element.
C.Använder en funktion på varje element utan att returnera något.
D.Filtrerar element baserat på ett villkor.

21. Vad är skillnaden mellan immutabilitet och mutabilitet?

A.Immutabilitet kan inte förändras; mutabilitet kan.
B.Immutabilitet kan förändras; mutabilitet kan inte.
C.De är samma sak.
D.Ingen skillnad.

22. Vilken av följande är ett exempel på en ren funktion?

A.Funktionen f(x) = x + 1
B.Funktionen som skriver ut ett meddelande
C.Funktionen som ändrar ett globalt tillstånd
D.Funktionen som läser från en fil

23. Vilket av följande påståenden är korrekt?

A.Funktioner kan lagras i variabler.
B.Funktioner kan inte skickas som argument.
C.Funktioner kan inte returnera andra funktioner.
D.Funktioner måste ha ett namn.

24. Vad händer när objekt refereras av flera variabler?

A.Referensdelning.
B.Kopiering av objekt.
C.Objektet blir mutabelt.
D.Ingen påverkan.

25. Vad är ett lambda-uttryck?

A.Ett kortfattat sätt att definiera anonyma funktioner.
B.Ett sätt att definiera klasser.
C.En typ av loop.
D.En datatyp i programmering.

26. Vad gör `forEach`?

A.Kör en funktion för varje element utan att returnera något.
B.Skapar en ny array med element.
C.Kombinerar alla element till ett enda värde.
D.Filtrerar en lista baserat på en funktion.

27. Vilken typ är känd för att vara immutabel i många programmeringsspråk?

A.Strängar.
B.Arraylist.
C.Hashset.
D.Dictionaries.

28. Vad innebär tillståndshantering i funktionell programmering?

A.Att skapa nya data istället för att ändra existerande.
B.Att spara tillstånd i en databas.
C.Att använda globala variabler.
D.Att alltid returnera samma objekt.

29. Vilken funktion används för att skapa en ny funktion genom att kombinera två funktioner?

A.Komposition
B.Kombination
C.Filtrering
D.Koppling

30. Fyll i tomrummet: I funktionell programmering är _______ ett centralt koncept.

A.immutabilitet.
B.mutabilitet.
C.procedurprogrammering.
D.objektorientering.

31. Sant eller falskt: Funktionell programmering stödjer tillståndsförändringar.

A.Falskt
B.Sant
C.Beroende av språk
D.Endast i vissa fall

32. Sann eller falsk: Lambda-funktioner är alltid namngivna.

A.Falsk
B.Sann
C.Ibland sann
D.Ibland falsk

33. Hur hanteras tillstånd i funktionell programmering?

A.Genom att skapa nya versioner av data.
B.Genom att förändra existerande data direkt.
C.Genom att använda globala variabler.
D.Genom att alltid undvika tillstånd.

34. Vad är rekursion?

A.En funktion som anropar sig själv.
B.En funktion som använder loopar.
C.En typ av variabel.
D.En metod för att lagra data i en array.

35. Vilken av följande är inte en högre ordningens funktion?

A.function add(x, y) { return x + y; }
B.function apply(fn, value) { return fn(value); }
C.let multiply = (x, y) => x * y;
D.function compose(f, g) { return x => f(g(x)); }

36. Vad kännetecknar en ren funktion?

A.Resultatet beror endast på inparametrarna.
B.Den har sidoeffekter.
C.Den använder globala variabler.
D.Den kan förändra tillstånd.

37. Ge ett exempel på en högre ordningens funktion.

A.Funktionen map(f, lista)
B.Funktionen print(value)
C.Funktionen return(value)
D.Funktionen sum(a, b)

38. Vad är en anonym funktion?

A.En funktion utan ett namn.
B.En funktion som inte kan returneras.
C.En funktion som alltid är synlig.
D.En funktion som används för att skapa klasser.

39. Vad kan hända vid förändring av tillstånd i ett program?

A.Oförutsägbara resultat.
B.Ökad effektivitet.
C.Inga ändringar.
D.Förbättrad läsbarhet.

40. Fyll i blank: Funktionell programmering använder ofta _____ för att kombinera funktioner.

A.komposition
B.substitution
C.iteration
D.konkatenation

41. Vad betyder det att funktioner är förstklassiga medborgare?

A.De kan tilldelas variabler, skickas som argument och returneras.
B.De kan bara användas inom klasser.
C.De kan inte skapas dynamiskt.
D.De kan inte anropas flera gånger.

42. Vilka är fördelarna med effektiv tillståndshantering?

A.Förutsägbarhet och förenkling av testning.
B.Minskad hastighet.
C.Ökad komplexitet.
D.Inga fördelar.

43. Vad är en funktionskomposition?

A.Att kombinera två funktioner till en ny funktion.
B.Att dela upp en funktion i flera delar.
C.Att skapa en funktion utan parametrar.
D.Att manipulera datatyper.

44. Vad är syftet med en högre ordningens funktion?

A.Att ta emot en eller flera funktioner som argument
B.Att alltid returnera ett heltal
C.Att endast manipulera strängar
D.Att skapa globala variabler

45. Vad är en state monad?

A.En struktur för att hantera tillstånd funktionellt.
B.Ett sätt att optimera minnesanvändning.
C.En typ av databas.
D.En form av objektorienterad programmering.

46. Definiera laziness.

A.En teknik där uttryck utvärderas endast när de behövs.
B.En teknik för att optimera loopar.
C.En typ av databasmetod.
D.En programmeringsspråkets syntax.

47. Vilken av följande beskriver bäst vad `map` gör?

A.Den kör en funktion på varje element i en lista och returnerar en ny lista
B.Den filtrerar bort element från en lista baserat på ett villkor
C.Den reducerar en lista till ett enda värde
D.Den skapar en lista av kvadrater från ett intervall av nummer

48. Vad innebär begreppet 'snapshot' i tillståndshantering?

A.En ögonblicksbild av ett objekts tillstånd.
B.En kopia av koden.
C.En typ av databas.
D.En funktion som aldrig förändras.

Relaterade studieset

Skapa ditt eget studieset

Ladda upp en PDF, klistra in dina anteckningar eller beskriv ett ämne – AI genererar flashcards, quiz och mer på några sekunder.