/funKTionale

Functional constructs for Kotlin

Primary LanguageKotlin

funKTionale

Functional constructs and patterns for Kotlin

Modules

Module Description Internal Dependencies Size(KB)
funktionale-all GOTY edition. Every other module content is included but not Experimental module N/A 1328
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 148
funktionale-memoization Memoization for functions N/A 112
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-reverse Extension reverse for functions N/A 32
funktionale-try Try computation type funktionale-either 12
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.0.1</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