funktionale programmierung Flashcards

1
Q

Was ist funktionale Programmierung?

A

Funktionale Programmierung ist eine deklarative Programmierparadigma, das beschreibt, was berechnet werden soll, anstatt wie es berechnet wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die Eigenschaften funktionaler Sprachen?

A

Funktionale Sprachen kennen keine Anweisungen, Schleifen oder klassischen Verzweigungen. Sie basieren nur auf mathematischen Funktionen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist referentielle Transparenz?

A

Referentielle Transparenz bedeutet, dass der Wert eines Ausdrucks nur von seiner Umgebung abhängt und immer denselben Wert liefert, unabhängig vom Zeitpunkt der Auswertung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was bedeutet Immutability?

A

Immutability bedeutet, dass Variablen in funktionalen Programmen unveränderlich sind. Einmal zugewiesene Werte können nicht mehr geändert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist Side-Effect-Freeness?

A

Side-Effect-Freeness bedeutet, dass eine Funktion nur von ihren Eingabeparametern abhängt und keine externen Zustände verändert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist das Substitutionsprinzip?

A

Das Substitutionsprinzip besagt, dass ein Ausdruck durch seinen Wert ersetzt werden kann, ohne die Programmkorrektheit zu beeinträchtigen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist Lazy Evaluation?

A

Lazy Evaluation verzögert die Auswertung eines Ausdrucks, bis sein Wert tatsächlich benötigt wird, und vermeidet so unnötige Berechnungen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind Higher-Order Functions?

A

Higher-Order Functions sind Funktionen, die andere Funktionen als Argumente erhalten oder Funktionen als Rückgabewert liefern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Warum sind starke Typisierung und funktionale Programmierung vorteilhaft?

A

Starke Typisierung sorgt für weniger Fehler und erleichtert die Fehlersuche, was zu höherer Softwarequalität und kürzerer Entwicklungszeit führt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Warum eignet sich funktionale Programmierung gut für parallele Systeme?

A

Durch Immutability und Side-Effect-Freeness entfällt die Notwendigkeit der Synchronisierung, was die Parallelisierung erleichtert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist der Vorteil von funktionaler Programmierung in der Telefonanlagenentwicklung?

A

Funktionale Programmierung ermöglicht es, viele parallele Verbindungen zu handhaben, da keine Synchronisation zwischen Threads erforderlich ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Lektionen der funktionalen Programmierung lassen sich auf imperative Sprachen übertragen?

A

Minimiere globalen ‘shared state’, bevorzuge verteilten lokalen state, und vermeide Nebenwirkungen (Side-Effects).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly