Skip to content
Functional constructs for Kotlin
Kotlin
Branch: master
Clone or download

README.md

funKTionale

Functional constructs and patterns for Kotlin

NOTE: Development of this project is frozen, as it will eventually be made obsolete by Arrow, which merges the functionality of funKTionale and Kategory. If you are not yet using funKTionale, we recommend you start with Arrow instead.

Modules

Module Description Internal Dependencies Size(KB)
funktionale-all GOTY edition. Every other module content is included but not Experimental module N/A 1372
funktionale-collections Collections related extensions such as tail, prependTo and others N/A 4
funktionale-complement Extension functions for predicates to generate complement functions N/A 36
funktionale-composition Extensions andThen (forwardCompose) and compose for functions N/A 8
funktionale-currying Extension curried and uncurried for functions N/A 348
funktionale-either Either and Disjuntion (right-biased Either) types funktionale-option 44
funktionale-experimental Playground and examples. Not to be used on production funktionale-all 116
funktionale-memoization Memoization for functions N/A 108
funktionale-option Option type funktionale-collections and funktionale-utils 20
funktionale-pairing Transformations for functions with arity 2 or 3 to one parameter of type Pair or Triple respectively N/A 8
funktionale-partials Partial applied functions N/A 688
funktionale-pipe pipe operator N/A 36
funktionale-reverse Extension reverse for functions N/A 32
funktionale-state state monad N/A 20
funktionale-try Try computation type funktionale-either 16
funktionale-utils identity and constant functions and Partial Functions N/A 20
funktionale-validation Validation types and functions with Disjunctions funktionale-either 12

Documentation

Read the Wiki

Conference and talks

Functional Programming in Kotlin with funKTionale (video, presentation)

Maven (and Gradle)

You must configure your pom.xml file using JCenter repository

<repository>
    <id>central</id>
    <name>bintray</name>
    <url>http://jcenter.bintray.com</url>
</repository>

Then you can use any funKTionale module to your library

<dependency>
    <groupId>org.funktionale</groupId>
    <artifactId>funktionale-all</artifactId>
    <version>1.2</version>
</dependency>

How to contribute?

Rise your PR against Experimental module (funktionale-experimental). Once it gets approved I'll move it to a proper module

You can’t perform that action at this time.