Functional Programming

Version vom 5. April 2024, 16:07 Uhr von Glanz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{:MOOCit - Oben}} {| align=center {{:D-Tab}} '''Funktionale Programmierung''' {{o}} Unveränderlichkeit {{o}} Reine Funktionen {{o}} Funktionen höherer Ordnung {{o}} Nebenläufigkeit |} = Einleitung = In diesem aiMOOC tauchen wir tief in das Thema des funktionalen Programmierens ein, ein Programmierparadigma, das die Auswertung von Funktionen und die U…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)



Functional Programming


Einleitung

In diesem aiMOOC tauchen wir tief in das Thema des funktionalen Programmierens ein, ein Programmierparadigma, das die Auswertung von Funktionen und die Unveränderlichkeit von Zuständen und Daten in den Mittelpunkt stellt. Dieses Paradigma unterscheidet sich grundlegend von der imperativen Programmierung, die Zustandsänderungen durch Anweisungen betont. Wir werden die Konzepte, Vorteile und Herausforderungen des funktionalen Programmierens untersuchen, sowie praktische Beispiele und Übungen anbieten, um die Theorie in die Praxis umzusetzen.


Was ist funktionales Programmieren?


Funktionales Programmieren (Funktionales Programmieren) ist ein Programmierparadigma, das die Auswertung von Funktionen und die Vermeidung von Zustandsänderungen und veränderlichen Daten betont. Es basiert auf dem mathematischen Konzept der Funktion in der Mathematik. In der funktionalen Programmierung sind Funktionen "erstklassige Bürger", was bedeutet, dass sie wie jede andere Variable behandelt werden können. Dies ermöglicht Konzepte wie höhere Funktionen (Funktionen, die andere Funktionen als Argumente nehmen oder als Ergebnis zurückgeben) und Funktionen höherer Ordnung (Funktionen, die aus anderen Funktionen zusammengesetzt sind).


Grundprinzipien


Unveränderlichkeit

In der funktionalen Programmierung sind Daten unveränderlich. Sobald ein Datenobjekt erstellt wurde, kann es nicht mehr verändert werden. Dies führt zu einfacherem und vorhersagbarem Code, da keine Seiteneffekte durch Datenänderungen entstehen können.


Reine Funktionen

Reine Funktionen sind ein weiteres Kernkonzept. Eine Funktion gilt als rein, wenn das gleiche Eingabeargument immer zum gleichen Ergebnis führt und die Ausführung der Funktion keine sichtbaren Seiteneffekte hat.


Funktionen höherer Ordnung

Funktionen höherer Ordnung nehmen Funktionen als Argumente an oder geben sie als Ergebnis zurück. Dieses Konzept ist mächtig und erlaubt es, sehr ausdrucksstarken und modularen Code zu schreiben.


Vorteile und Herausforderungen


Vorteile


o Einfachheit: Unveränderliche Daten und reine Funktionen führen zu transparenterem und vorhersagbarem Code. o Wiederverwendbarkeit: Funktionen höherer Ordnung und reine Funktionen fördern die Wiederverwendung von Code. o Testbarkeit: Reine Funktionen sind einfacher zu testen, da sie keine externen Abhängigkeiten haben. o Nebenläufigkeit: Unveränderliche Daten vereinfachen die Programmierung nebenläufiger Anwendungen erheblich.


Herausforderungen


o Lernkurve: Das Konzept des funktionalen Programmierens kann für Entwickler, die mit imperativen Paradigmen vertraut sind, zunächst unintuitiv sein. o Leistung: Die Unveränderlichkeit kann in einigen Fällen zu Leistungseinbußen führen, da sie die Erstellung neuer Kopien von Datenobjekten erfordert. o Ressourcenverbrauch: Ähnlich wie bei der Leistung kann die Unveränderlichkeit in bestimmten Szenarien einen höheren Speicherverbrauch bedeuten.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Was ist eine reine Funktion? (Eine Funktion, die bei gleichen Eingaben immer dasselbe Ergebnis liefert und keine Seiteneffekte hat.) (!Eine Funktion, die ihre Eingaben verändert.) (!Eine Funktion, die zufällige Ergebnisse liefert.) (!Eine Funktion, die nur einmal in einem Programm aufgerufen werden kann.)

Welches Konzept ist NICHT ein Teil des funktionalen Programmierens? (Zustandsänderungen) (!Unveränderlichkeit) (!Reine Funktionen) (!Funktionen höherer Ordnung)

Was bedeutet "Funktionen sind erstklassige Bürger" im Kontext des funktionalen Programmierens? (Dass Funktionen wie jede andere Variable behandelt werden können.) (!Dass Funktionen nur in speziellen Fällen verwendet werden dürfen.) (!Dass Funktionen überflüssig sind und vermieden werden sollten.) (!Dass Funktionen nicht als Argumente an andere Funktionen übergeben werden können.)

Wodurch wird die Testbarkeit in der funktionalen Programmierung erhöht? (Durch die Verwendung reiner Funktionen) (!Durch die Veränderung von Zuständen) (!Durch direkte Manipulation von Datenstrukturen) (!Durch das Ignorieren von Seiteneffekten)

Was ermöglichen Funktionen höherer Ordnung? (Sie ermöglichen es, Funktionen als Argumente anzunehmen oder sie als Ergebnisse zurückzugeben.) (!Sie reduzieren die Notwendigkeit von Schleifen in Programmen.) (!Sie eliminieren die Verwendung von Variablen.) (!Sie garantieren die Ausführung von Programmen in linearer Zeit.)





Memory

Unveränderlichkeit Daten können nach ihrer Erstellung nicht verändert werden
Reine Funktion Funktion ohne Seiteneffekte und mit idempotenten Eigenschaften
Funktionen höherer Ordnung Funktionen, die andere Funktionen als Argumente nehmen oder als Ergebnisse zurückgeben
Nebenläufigkeit Einfacher durch Unveränderlichkeit
Imperatives Programmieren Zustandsänderungen und Anweisungen





Kreuzworträtsel

Idempotenz Eine Operation, die mehrfach angewendet das gleiche Ergebnis liefert
Haskell Eine weit verbreitete funktionale Programmiersprache
Curry Technik, bei der eine Funktion, die mehrere Argumente erwartet, in eine Reihe von Funktionen umgewandelt wird, die jeweils ein Argument erwarten
Lambda Anonyme Funktionen in vielen funktionalen Sprachen
Elixir Moderne, funktionale Programmiersprache, die für Nebenläufigkeit und Fehlertoleranz entwickelt wurde
Monade Struktur, die es ermöglicht, Operationen sequenziell zu verketten
Elm Funktionale Sprache für Frontend-Entwicklung
Closure Eine Funktion, die Zugriff auf den umgebenden lexikalischen Kontext hat




LearningApps

Lückentext

Vervollständige den Text.

In der funktionalen Programmierung sind Daten

und Funktionen werden als

behandelt. Eine reine Funktion liefert bei gleichen Eingaben immer das

und hat keine

. Funktionen höherer Ordnung

Funktionen als Argumente oder geben sie als Ergebnis zurück.



Offene Aufgaben


Leicht

  1. Funktionsbeispiele: Schreibe drei Beispiele für reine Funktionen in einer Programmiersprache deiner Wahl.
  2. Unveränderlichkeit untersuchen: Untersuche, wie Unveränderlichkeit in einer funktionalen Sprache deiner Wahl umgesetzt wird.
  3. Funktionskomposition: Erstelle eine einfache Funktion durch Komposition zweier anderer Funktionen.

Standard

  1. Nebenläufige Programmierung: Entwickle ein einfaches Beispiel für nebenläufige Programmierung unter Verwendung von Unveränderlichkeit.
  2. Monaden verstehen: Erkläre das Konzept der Monade in deinen eigenen Worten und gib ein Beispiel.
  3. Haskell-Übung: Löse ein einfaches Problem in Haskell, um deine Fähigkeiten in funktionaler Programmierung zu testen.

Schwer

  1. Funktionales Refactoring: Nimm ein imperatives Programm und refaktoriere es in einen funktionalen Stil.
  2. Funktional vs. Imperativ: Vergleiche die Leistung eines funktionalen und eines imperativen Programms bei der Lösung desselben Problems.
  3. Fortgeschrittene Funktionen: Entwickle eine fortgeschrittene Anwendung der Funktionen höherer Ordnung in einem Projekt deiner Wahl.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle


  1. Konzepte verbinden: Erkläre, wie Unveränderlichkeit zur Vereinfachung von nebenläufiger Programmierung beiträgt.
  2. Kritische Reflexion: Diskutiere die potenziellen Nachteile der Unveränderlichkeit in der funktionalen Programmierung.
  3. Anwendungsfälle: Identifiziere und erkläre drei Anwendungsfälle, in denen funktionale Programmierung besonders vorteilhaft sein kann.
  4. Paradigmenvergleich: Vergleiche funktionale mit objektorientierter Programmierung hinsichtlich der Code-Wartung und Testbarkeit.
  5. Innovationen: Diskutiere, wie funktionale Programmierung zur Entwicklung neuer Software-Entwicklungsmethoden beitragen kann.

OERs zum Thema

Links

Teilen - Diskussion - Bewerten





Schulfach+

Prüfungsliteratur 2026
Bundesland Bücher Kurzbeschreibung
Baden-Württemberg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Mittlere Reife

  1. Der Markisenmann - Jan Weiler oder Als die Welt uns gehörte - Liz Kessler
  2. Ein Schatten wie ein Leopard - Myron Levoy oder Pampa Blues - Rolf Lappert

Abitur Dorfrichter-Komödie über Wahrheit/Schuld; Roman über einen Ort und deutsche Geschichte. Mittlere Reife Wahllektüren (Roadtrip-Vater-Sohn / Jugendroman im NS-Kontext / Coming-of-age / Provinzroman).

Bayern

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Lustspiel über Machtmissbrauch und Recht; Roman als Zeitschnitt deutscher Geschichte an einem Haus/Grundstück.

Berlin/Brandenburg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Der Biberpelz - Gerhart Hauptmann
  4. Heimsuchung - Jenny Erpenbeck

Abitur Gerichtskomödie; soziales Drama um Ausbeutung/Armut; Komödie/Satire um Diebstahl und Obrigkeit; Roman über Erinnerungsräume und Umbrüche.

Bremen

Abitur

  1. Nach Mitternacht - Irmgard Keun
  2. Mario und der Zauberer - Thomas Mann
  3. Emilia Galotti - Gotthold Ephraim Lessing oder Miss Sara Sampson - Gotthold Ephraim Lessing

Abitur Roman in der NS-Zeit (Alltag, Anpassung, Angst); Novelle über Verführung/Massenpsychologie; bürgerliche Trauerspiele (Moral, Macht, Stand).

Hamburg

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Das kunstseidene Mädchen - Irmgard Keun

Abitur Justiz-/Machtkritik als Komödie; Großstadtroman der Weimarer Zeit (Rollenbilder, Aufstiegsträume, soziale Realität).

Hessen

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Heimsuchung - Jenny Erpenbeck
  4. Der Prozess - Franz Kafka

Abitur Gerichtskomödie; Fragmentdrama über Gewalt/Entmenschlichung; Erinnerungsroman über deutsche Brüche; moderner Roman über Schuld, Macht und Bürokratie.

Niedersachsen

Abitur

  1. Der zerbrochene Krug - Heinrich von Kleist
  2. Das kunstseidene Mädchen - Irmgard Keun
  3. Die Marquise von O. - Heinrich von Kleist
  4. Über das Marionettentheater - Heinrich von Kleist

Abitur Schwerpunkt auf Drama/Roman sowie Kleist-Prosatext und Essay (Ehre, Gewalt, Unschuld; Ästhetik/„Anmut“).

Nordrhein-Westfalen

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Komödie über Wahrheit und Autorität; Roman als literarische „Geschichtsschichtung“ an einem Ort.

Saarland

Abitur

  1. Heimsuchung - Jenny Erpenbeck
  2. Furor - Lutz Hübner und Sarah Nemitz
  3. Bahnwärter Thiel - Gerhart Hauptmann

Abitur Erinnerungsroman an einem Ort; zeitgenössisches Drama über Eskalation/Populismus; naturalistische Novelle (Pflicht/Überforderung/Abgrund).

Sachsen (berufliches Gymnasium)

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Woyzeck - Georg Büchner
  3. Irrungen, Wirrungen - Theodor Fontane
  4. Der gute Mensch von Sezuan - Bertolt Brecht
  5. Heimsuchung - Jenny Erpenbeck
  6. Der Trafikant - Robert Seethaler

Abitur Mischung aus Klassiker-Drama, sozialem Drama, realistischem Roman, epischem Theater und Gegenwarts-/Erinnerungsroman; zusätzlich Coming-of-age im historischen Kontext.

Sachsen-Anhalt

Abitur

  1. (keine fest benannte landesweite Pflichtlektüre veröffentlicht; Themenfelder)

Abitur Schwerpunktsetzung über Themenfelder (u. a. Literatur um 1900; Sprache in politisch-gesellschaftlichen Kontexten), ohne feste Einzeltitel.

Schleswig-Holstein

Abitur

  1. Der zerbrochne Krug - Heinrich von Kleist
  2. Heimsuchung - Jenny Erpenbeck

Abitur Recht/Gerechtigkeit und historische Tiefenschichten eines Ortes – umgesetzt über Drama und Gegenwartsroman.

Thüringen

Abitur

  1. (keine fest benannte landesweite Pflichtlektüre veröffentlicht; Orientierung am gemeinsamen Aufgabenpool)

Abitur In der Praxis häufig Orientierung am gemeinsamen Aufgabenpool; landesweite Einzeltitel je nach Vorgabe/Handreichung nicht einheitlich ausgewiesen.

Mecklenburg-Vorpommern

Abitur

  1. (Quelle aktuell technisch nicht abrufbar; Beteiligung am gemeinsamen Aufgabenpool bekannt)

Abitur Land beteiligt sich am länderübergreifenden Aufgabenpool; konkrete, veröffentlichte Einzeltitel konnten hier nicht ausgelesen werden.

Rheinland-Pfalz

Abitur

  1. (keine landesweit einheitliche Pflichtlektüre; schulische Auswahl)

Abitur Keine landesweite Einheitsliste; Auswahl kann schul-/kursbezogen erfolgen.




aiMOOCs



aiMOOC Projekte












YouTube Music: THE MONKEY DANCE


Spotify: THE MONKEY DANCE


Apple Music: THE MONKEY DANCE

Amazon Music: THE MONKEY DANCE



The Monkey Dance SpreadShirtShop




The Monkey DanceaiMOOCs

  1. Trust Me It's True: #Verschwörungstheorie #FakeNews
  2. Gregor Samsa Is You: #Kafka #Verwandlung
  3. Who Owns Who: #Musk #Geld
  4. Lump: #Trump #Manipulation
  5. Filth Like You: #Konsum #Heuchelei
  6. Your Poverty Pisses Me Off: #SozialeUngerechtigkeit #Musk
  7. Hello I'm Pump: #Trump #Kapitalismus
  8. Monkey Dance Party: #Lebensfreude
  9. God Hates You Too: #Religionsfanatiker
  10. You You You: #Klimawandel #Klimaleugner
  11. Monkey Free: #Konformität #Macht #Kontrolle
  12. Pure Blood: #Rassismus
  13. Monkey World: #Chaos #Illusion #Manipulation
  14. Uh Uh Uh Poor You: #Kafka #BerichtAkademie #Doppelmoral
  15. The Monkey Dance Song: #Gesellschaftskritik
  16. Will You Be Mine: #Love
  17. Arbeitsheft
  18. And Thanks for Your Meat: #AntiFactoryFarming #AnimalRights #MeatIndustry


© The Monkey Dance on Spotify, YouTube, Amazon, MOOCit, Deezer, ...



Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen

Teilen Facebook Twitter Google Mail an MOOCit Missbrauch melden Zertifikat beantragen


0.00
(0 Stimmen)











Children for a better world >> Förderung der AI Fair-Image Challenge

Fair-Image wird von CHILDREN JUGEND HILFT! gefördert und ist mit der deutschlandweiten AI Fair-Image Challenge SIEGERPROJEKT 2025. Alle Infos zur Challenge hier >>. Infos zum Camp25 gibt es hier. Wenn auch Ihr Euch ehrenamtlich engagiert und noch finanzielle Unterstützung für Eurer Projekt braucht, dann stellt gerne einen Antrag bei JUGEND HILFT.