Informatik Programmierung – Funktionale Programmierung
Karteikarten zum Thema „Informatik“ · 13 Karten · von atrio. Beispiele: Was ist funktionale Programmierung? · Was bedeutet Immutability?
Karten
13 KartenWas ist funktionale Programmierung?
Rückseite
Ein Programmierparadigma, das Berechnung als Auswertung mathematischer Funktionen behandelt und veränderbare Zustände sowie Seiteneffekte vermeidet.
Was bedeutet Immutability?
Rückseite
Datenstrukturen können nach Erstellung nicht verändert werden; Operationen geben neue Instanzen zurück statt bestehende zu mutieren.
Was sind Higher-Order Functions?
Rückseite
Funktionen, die andere Funktionen als Parameter entgegennehmen oder Funktionen als Rückgabewert liefern – z. B. map, filter, reduce.
Was zeichnet eine reine Funktion aus?
Rückseite
Für gleiche Eingaben liefert sie immer gleiche Ausgabe und erzeugt keine Seiteneffekte wie I/O oder Zustandsänderungen.
Was bedeutet referentielle Transparenz?
Rückseite
Ein Ausdruck kann jederzeit durch seinen Wert ersetzt werden, ohne das Programmverhalten zu ändern – Voraussetzung für Gleichheitsreasoning.
Warum wird Rekursion statt Schleifen genutzt?
Rückseite
Da Variablen nicht mutierbar sind, ersetzt Rekursion iterative Konstrukte; Tail-Call-Optimierung verhindert Stack-Overflows bei Endrekursion.
Was bewirken Map, Filter und Reduce?
Rückseite
Map transformiert jedes Element, filter wählt Elemente per Prädikat aus, reduce aggregiert eine Liste zu einem einzelnen Wert.
Was ist Currying?
Rückseite
Umwandlung einer Funktion mit mehreren Argumenten in eine Kette von Funktionen, die jeweils genau ein Argument entgegennehmen.
Was ist partielle Anwendung?
Rückseite
Fixierung einiger Argumente einer Funktion, wodurch eine neue Funktion mit reduzierter Arität entsteht – verwandt, aber nicht identisch mit Currying.
Was ist ein Functor?
Rückseite
Ein Typkonstruktor mit einer map-Operation, die Struktur bewahrt und Funktionen auf die enthaltenen Werte anwendet – z. B. List, Option, Promise.
Was ist ein Monad?
Rückseite
Ein Functor mit zusätzlichen Operationen unit (wrap) und flatMap (bind), der sequenzielle Komposition mit Kontext ermöglicht – z. B. für Fehlerbehandlung oder State.
Was bedeutet Lazy Evaluation?
Rückseite
Ausdrücke werden erst beim tatsächlichen Bedarf ausgewertet, was unendliche Datenstrukturen und Short-Circuiting ermöglicht – Standard in Haskell, optional in Scala.
Worin unterscheidet sich deklaratives von imperativem Stil?
Rückseite
Deklarativ beschreibt WAS berechnet wird (Ausdrücke), imperativ beschreibt WIE Schritt für Schritt (Anweisungen mit Zustandsänderungen).