Λrrow - Functional Programming for Kotlin
- by Raúl Raja Martínez
- January 15, 2018
- kotlin• functional• arrow• kategory• funktionale
- 3 minutes to read.
We are pleased to announce the general availability of
Kategory and Funktionale were the two most relevant FP libraries for Kotlin in 2017.
The two groups of maintainers decided to join forces after encountering both users and companies in the Scala community who were facing issues with
cats while working on industry projects. The goal was to merge into a single library that would provide users in Kotlin with a unified and reasonable approach to typed FP that avoids issues related to split libraries and binary incompatibilities between data types and type classes for users.
Now the KΛTEGORY and funKTionale libraries have united forces and made the necessary changes required to bring these two communities together in the spirit of a better FP ecosystem for everyone in Kotlin.
Arrow is built from the ground up as a modular library that allows users to pick and choose what features interest them the most.
At the time of the current release
0.5.5 the following modules are available:
Basic data types such as
Either, and others are part of the foundation that Arrow is built on.
Advanced data types such as
Arrow Type classes
FP type classes
Implicit instances for all the Arrow data types providing instances of the FP type classes
Free data structures,
MTL type classes that allow for the abstraction of monad transformers.
IO data type and related type classes abstract away effect handling and async behaviors.
Arrow Effects RX2
Instances and utilities to work with RX in a more functional style.
Lenses, Prisms, Iso, and more data types and type classes to work with immutable data structures such as data classes or sealed families.
Syntax facilities derived from data types and type class evidences over the std lib data types.
Arrow is proudly sponsored by 47 Degrees, a Functional Programming consultancy with a focus on the Scala and Kotlin Programming languages which supports the active development of Arrow.