Funktionale Programmierung mit Racket
Funktionale Programmierung
Funktionale Programmierung ist, wie die imperative oder objektorientierte Programmierung, ein Programmierstil, also eine spezielle Art zu Programmieren. Im Unterschied zu imperativen oder objektorientieren Ansätzen interessiert es einen hier nicht im Detail wie man Probleme schrittweise löst, sondern man versucht auf einem höheren Abstraktionsniveau zu bleiben. Man stellt sich die Frage welches Ergebnis man eigentlich für ein Problem erhalten möchte und welche Teilprobleme im Gesamtproblem enthalten sind. Zur Lösung einzelner Probleme werden Funktionen genutzt, die das gewünschte Ergebnis so präzise beschreiben, dass diese durch den Compiler gelöst werden können - daher auch der Name "funktionale Programmierung". Ein funktionales Programm besteht somit aus einer Sammlung an Funktionen, welche durch geschickte Kombination miteinander auch sehr komplexe Probleme lösen können.
Was lernst du in diesem Kapitel?
Du wirst die Grundlagen der funktionalen Programmierung kennenlernen und einfache funktionale Programme schreiben. Einige dir möglicherweise vertraute Konzepte, wie veränderbare Variablen oder klassische Schleifenstrukturen (while, for) werden in der funktionalen Programmierung bewusst vermieden. Die funktionale Programmierung zwingt dich daher mit einem anderen Denkansatz an Probleme heranzugehen. Was du also im Besonderen lernen wirst, ist Problem auf eine neue und andere Weise zu lösen. Die funktionale Programmierung bietet dir dafür einige spannende Konzepte, mit welchen wir Probleme elegant lösen werden.
Um die Denkweisen der funktionalen Programmierung auch in der Praxis umzusetzen nutzen
wir die funktionale Programmiersprache Racket.
Diese Sprache ist sehr schematisch aufgebaut, was uns hilft, unsere Gedanken und
funktionalen Problemlösungen möglichst direkt im Programm
umsetzen zu können.
(Genauere Infos zu Racket findest du im nächsten Kapiteln oder auf der
offiziellen Webseite von Racket)
Egal ob du am Ende nur noch funktional programmieren möchtest, ob du am liebsten direkt wieder zurück zu einem anderen Stil möchtest oder aber je nach Bedarf und Problem die verschiedenen Stile miteinander kombinierst - die Auseinandersetzung mit der funktionalen Programmierung wird dir auf jeden Fall helfen, verschiedene Stile und damit auch Denkweisen zu verstehen - um egal welche Probleme du auch immer lösen musst, du diese strukturiert und effizient meistern wirst.
Was musst du schon wissen?
Die hier verwendetet Programmiersprache Racket eignet sich prinzipiell hervorragend um
in die Programmierung einzuführen, da sie sehr schematisch aufgebaut und damit auch relativ einfach zu
erlernen ist.
Dieses Kapitel ist allerdings nicht als eine allgemeine Einführung gedacht und liefert daher
keine detaillierte Einführung in die Grundlagen
der Programmierung.
Daher ist es für dieses Kapitel empfehlenswert bereits Erfahrungen in einer anderen
Programmiersprache zu haben.
Denn so können wir uns hier ganz auf die zentralen Konzepte
der funktionalen Programmierung konzentrieren.
Viel Spaß!