Funktionale Programmierung verstehen - Konzepte und Entwurfsmuster für guten, wartbaren und eleganten Code
Verlag | Rheinwerk Verlag |
Auflage | 2024 |
Seiten | 187 |
Format | 17,5 x 1,2 x 23,0 cm |
Großformatiges Paperback. Klappenbroschur | |
Gewicht | 369 g |
ISBN-10 | 3836298686 |
ISBN-13 | 9783836298681 |
Bestell-Nr | 83629868A |
Möchten Sie sauberen, wartbaren und eleganten Code schreiben? Dann lernen Sie das Paradigma der funktionalen Programmierung kennen! Tauchen Sie in eine neue Denkweise ein und schreiben Sie eleganten Code auf die funktionale Art. Code, der sich in Ihren Anwendungen nutzen lässt, auch wenn Sie objektorientiert erstellt sind. Es kommt nicht darauf an, in welcher Programmiersprache Sie schreiben. Die meisten Codebeispiele in diesem Buch sind in leicht verständlichem Scala formuliert und außerdem in Python übersetzt. Der Autor geht außerdem auf sprachabhängige Aspekte ein und zeigt dazu auch Codebeispiele in Java, JavaScript und C#. Für Python-Liebhaber gibt es in der deutschen Ausgabe ein Special mit Python-Codebeispielen und zusätzlichen Tipps, um das Buch ganz im "Python-Modus" lesen zu können.
Aus dem Inhalt:
Die Denkweise kennenlernenEin paar einfache mathematische GrundlagenEntwurfsmusterDatenstrukturenUnveränderlichkeitNebenläufigkeitKombination mit OOPBesonder heiten verschiedener ProgrammiersprachenPython-Special
Inhaltsverzeichnis:
Vorwort ... 9
1. Was ist funktionale Programmierung? ... 11
1.1 ... Unveränderlichkeit ... 13
1.2 ... Referenzielle Transparenz ... 16
1.3 ... Funktionen höherer Ordnung ... 18
1.4 ... Lazy Evaluation ... 19
1.5 ... Funktionale Denkweise ... 21
1.6 ... Die Vorteile der funktionalen Programmierung ... 22
1.7 ... Fazit ... 26
2. Mathematische Grundlagen ... 27
2.1 ... Mengenlehre ... 27
2.2 ... Grundlagen der Informatik ... 32
2.3 ... Fazit ... 34
3. Kategorientheorie und Entwurfsmuster ... 35
3.1 ... Kategorientheorie und Funktionsmuster ... 37
3.2 ... Funktionsmuster ... 51
3.3 ... Fazit ... 60
4. Funktionale Datenstrukturen ... 61
4.1 ... Die Option-Datenstruktur ... 62
4.2 ... Die Try-Datenstruktur ... 67
4.3 ... Die Either-Datenstruktur ... 68
4.4 ... Fu nktionen höherer Ordnung ... 70
4.5 ... Monaden und Scala-Abstraktionen ... 72
4.6 ... Traditionelle Datenstrukturen ... 74
4.7 ... Fazit ... 75
5. Unveränderlichkeit im Detail ... 77
5.1 ... Veränderliche und unveränderliche Variablen ... 77
5.2 ... Rekursion ... 78
5.3 ... Endrekursion ... 86
5.4 ... Weitere Beispiele für die Leistungsfähigkeit der fold-Funktion in Scala ... 91
5.5 ... Verbindung zwischen »fold« und Monoiden ... 92
5.6 ... Vertiefende Informationen zu Funktionen höherer Ordnung ... 96
5.7 ... Fazit ... 101
6. Nebenläufigkeit ... 103
6.1 ... Streams ... 107
6.2 ... Akka-Streams ... 108
6.3 ... Weitere Informationen zu Streams ... 111
6.4 ... FS2: funktionale Streams für Scala ... 112
6.5 ... Fazit ... 114
7. Wie geht es weiter? ... 115
7.1 ... Den reinen Weg einsch lagen ... 115
7.2 ... Fazit ... 128
Anhang ... 129
A ... Scala ... 129
B ... Python-Special ... 151
Index ... 183