Einführung in die Funktionale Programmierung (einfach und praxisnah!)
Niklas Steenfatt Niklas Steenfatt
253K subscribers
128,977 views
0

 Published On Aug 7, 2020

💠 Mein komplettes Produktivitätssystem: https://fokus.so



Funktionale Programmierung ist ein Programmierparadigma, das in der modernen Softwareentwicklung eine wichtige Rolle spielt. Es ermöglicht uns, eleganten, zustandslosen Code zu schreiben, der im Vergleich zur klassisch imperativen Programmierung oft einfacher zu interpretieren, testen und parallelisieren ist. Funktionale Programmierung ist kein Ersatz für objektorientierte Programmierung, sondern eine wichtige Ergänzung.

In meinen Studentenzeiten habe ich funktionale Programmierung als Übungsleiter an der Universität unterrichtet. Als Softwareentwickler in der Industrie kommen mir die Konzepte aus der funktionalen Programmierung regelmäßig zugute.

In dieser Einführung erkläre ich anhand von praktischen Beispielen in Python (und Java), was funktionale Programmierung ausmacht, welche Vorteile sie hat, und wie man funktionale Programme in der Praxis schreibt.

Ich setze lediglich ein Grundverständnis imperativer Programmierung (Zuweisungen, Schleifen, usw.) voraus. Ich behandle insbesondere Seiteneffekte, Closures, Lambda-Funktionen und Funktionen höherer Ordnung: map, filter, reduce und curry. Als Bonus zeige ich, wie man mit Python List Comprehensions besonders schönen funktionalen Code schreiben kann.

Zum Abschluss gebe ich drei Übungsaufgaben:
1) anzahl_gerade (mittels reduce und filter)
2) curry
3) mein_filter (mittels reduce)

Schreib gerne einen Kommentar mit deiner Lösung! Am liebsten mit etwas Platz davor, damit es nicht gleich allen angezeigt wird.

📢 Zuschauerumfrage: https://forms.gle/p8xZt3Ag2LYZGewq9

💌 Newsletter: https://niklassteenfatt.com/

Die Folien in diesem Video habe ich mit excalidraw.com erstellt.

Quelle für das Bild von Haskell Curry: https://commons.wikimedia.org/wiki/Fi...

▬ Timestamps ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

0:00 - Intro
0:33 - Programmierparadigmen
2:18 - Gegenbeispiel: Seiteneffekte
4:37 - Sortieren in Python: funktional vs imperativ
5:58 - Vorzüge funktionaler Programmierung
8:09 - Funktionen höherer Ordnung
8:34 - Vorstellung des Anwendungsbeispiels
9:20 - Closures
12:28 - Map
14:09 - Lambda-Funktionen
16:30 - Currying
17:35 - Filter
18:41 - Reduce
20:10 - List Comprehensions
21:53 - Beispiele in Java
22:12 - Übungsaufgaben

Jetzt deine Ziele erreichen: https://fokus.so

show more

Share/Embed