Java Magazin 07/18

Functional Patterns: Textanalyse mit Monoid

Autor:

Wer hat keine Angst vor Algebra?

Die funktionale Programmierung birgt eine Vielzahl neuer Konzepte, mit denen sich bekannte Probleme auf neue Art lösen lassen. Häufig wird dabei auf Strukturen aus der abstrakten Algebra zurückgegriffen, sehr bekannt sind mittlerweile die Monaden. Schauen wir uns eine andere Struktur an, die viel einfacher als Monaden ist und uns trotzdem sehr mächtige Abstraktionen bauen lässt: das Monoid.

Die initialen Gedanken vieler Leser dürften in etwa folgende sein: Abstrakte Algebra? Warum weiterlesen? Wie soll mir das denn im Alltag helfen? Leider hat die funktionale Programmierung (immer noch) allzu oft den Ruf, zu akademisch und fernab der Realität des normalen Tagesgeschäfts zu sein. Überwindet man erst einmal diese Vorurteile und schaut etwas tiefer, stellt sich aber recht schnell heraus, dass wir beim Programmieren auf Wissen und Techniken zurückgreifen können, die schon seit Jahrhunderten bekannt und erforscht sind. Ein großer Teil der „neuen“ Konzepte in der funktionalen Programmierung basiert auf Konzepten der Mathematik und wendet diese auf Probleme in der Softwareentwicklung an. Damit aber genug der Theorie, wenden wir uns nun der praktischen Anwendung zu. Dazu werfen wir einen Blick auf das Konzept des Monoids, erläutern und implementieren, zeigen Beispiele und wenden am Schluss unser neues Wissen auf ein Problem aus der Praxis an: Textanalyse mit Apache Spark. Der gesamte Code steht online zur Verfügung.

Vollständiger Artikel