Mit der neuen Library von Kotlin trifft man genau ins Schwarze

Funktionale Programmierung in Kotlin: Arrow macht es möglich

Jane Elizabeth
Zielscheibe Aufmacherbild

© Shutterstock.com / Lucky Vector

Die Libraries rund um die statisch typisierte Programmiersprache Kotlin haben einen Neuzugang erhalten! Arrow, ein funktionaler Companion für Kotlins Standard Programmbibliotheken, dessen Features wir uns jetzt etwas genauer ansehen wollen.

Funktionales Programmieren für die Sprache Kotlin zur Verfügung zu stellen ist nicht zwangsläufig eine schlechte Idee. Auch wenn Objekt-orientiertes Programmieren immer zwangsläufig ein Punkt ist, wenn man über Kotlin spricht, ist es nicht zwingend notwendig. Einige der Features von Kotlin selbst scheinen zudem bereits ähnliches Potential zu besitzen, wie bspw. die high order functions oder die Möglichkeit, function as first class citizen zu nutzen. Es ist möglich, dass es sich bei diesen Features um solche handelt, die entweder an Funktionen angelehnt bzw. orientiert oder selbst Teil der funktionalen Programmierung sind.

Auftritt: Arrow

Jetzt gibt es jedoch eine Library, die auf typisierte funktionale Programmierung in Kotlin ausgelegt ist: Arrow. Die Arrow Librarby enthält alle  gängigen Datentypen, Typklassen und Abstraktionen, wie bspw. Option, Try, Either, IO, Functor, Applicative oder Monad. Hinzu kommen viele weitere, die Nutzer die Möglichkeit an die Hand geben, reine Anwendungen mit funktionaler Programmierung und Bibliotheken zu erstellen, die auf höherrangingen Abstraktionen basieren.

Arrow entstand aus dem Zusammenschluss der bekanntesten, für die funktionale Programmierung gedachten, Libraries: KΛTEGORY und funKTionale. Mit Arrow können Nutzer daher jetzt über ein verbessertes FP-Ökosystem verfügen, das nicht mehr auf verschiedene Bibliotheken verteilt ist. So können auch Probleme vermieden werden, die mit gesplitteten Libraries und Binärinkompatibilitäten zwischen Datentypen und Typklassen einhergehen.

In der Auflistung finden Sie die wichtigsten Features von Arrow:

  • Patterns – Eine Liste von Tutorials und FP Patterns, die Lösungen für gängige Programmieraufgaben in reiner FP-Manier demonstrieren.
  • TypenklassenFunctor, Applicative, Monad und all ihre Freunde, damit Sie die Vorteile des Ad-hoc-Polymorphismus in Kotlin nutzen können.
  • DatentypenOption, Try, Either, Eval, NonEmptyList und viele andere Datentypen, die auf algebraischen Eigenschaften basieren.
  • Integrationen – Integrationen mit Rx2 und anderen gängigen Frameworks und Datentypen im Kotlin-Ökosystem.
  • Optics – Prüfen und Modifizieren von Datenstrukturen.

seealso

Arrow wurde als modulare Library konzipiert. Anwendern ist es somit möglich, ihre favorisierten Features auszusuchen und nach Belieben auszutauschen. Im aktuellen Release 0.5.5 sind unter anderem die folgenden Module erhältlich:

  • Core
  • Instances
  • Free
  • MTL
  • Effects
  • Effects RX2
  • Syntax

Wer gerne selbst mit Arrow arbeiten möchte, erfährt auf der offiziellen Homepage und auf GitHub mehr darüber.

Verwandte Themen:

Geschrieben von
Jane Elizabeth
Jane Elizabeth
Jane Elizabeth ist eine Redaktionsassistentin für JAXenter.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: