Skip to content

Monadic is a distributed multiplatform Kotlin framework that provides a way to write code from functional programming

License

Notifications You must be signed in to change notification settings

pavelannin/Monadic-Kotlin

Repository files navigation

EN | RU

License

Overview

What is Monadic

Monadic is a distributed Kotlin multiplatform library that provides the ability to use functional programming in Kotlin.

What is distributed framework

Monadic allows you to include in dependencies only the part that you plan to use in the project.

Developers often do not add large functional libraries to their projects due to excessive workload, increasing the size of the application and the possibility for other developers to use the unwanted part of the library.

Monadic solves this problem - connect only those parts of the library that you plan to use.

How to use

Using the BOM

Maven Central

The BOM specification allows you to manage all versions of the Monadic library by specifying only the version of the specification. The specification itself contains links to versions of various Monadic libraries. When using the specification in your application , you do not need to add any version of the Monadic library dependency. When you update a version of the specification, all the libraries you use are automatically updated to the new versions.

It is recommended to use the BOM specification if you use more than one part of the Monadic library.

implementation(platform("io.github.pavelannin:monadic-bom:<version>"))

Checkable

Maven Central

The Checkable type is a functional construct used to extend the any type with states: checked (marked) or Unchecked.

Checkable is convenient to use at the level of business logic and application view states.

implementation("io.github.pavelannin:monadic-checkable-core")

Either

Maven Central

The Either monad is a functional construct used to handle alternative results or errors.

Typed errors refer to a functional programming technique in which potential errors that may occur during the execution of an operation are explicitly described in the signature.

implementation("io.github.pavelannin:monadic-either-core")

Utility functions

Maven Central

Utilities for functions in a functional style: composition, currying, etc.

implementation("io.github.pavelannin:monadic-function-core")

Identifiable

Maven Central

The Identifiable type is a universal design designed for identification types. Used to add a typed identifier to type.

implementation("io.github.pavelannin:monadic-identifiable-core")

LCE

Maven Central

The LCE monad is a functional construct used to handle the state of operations (consisting of 3 states: execution, successful and error).

Convenient use for determining the state of the screen or an operation on a user view (used in MVI approaches).

implementation("io.github.pavelannin:monadic-lce-core")

LCE - Either (Extensions)

Maven Central

A set of utilities that extend the capabilities of LCE and `Either'.

implementation("io.github.pavelannin:monadic-lce-either")

Optional

Maven Central

The Optinal monad is a functional construct used for a value that can be `null'.

implementation("io.github.pavelannin:monadic-optional-core")

Optional - Either (Extensions)

Maven Central

A set of utilities that extend the capabilities of Optional and `Either'.

implementation("io.github.pavelannin:monadic-optional-either")

Refreshable

Maven Central

Тип Refreshable - это функциональная конструкция, используемая для расширения любого типа состояниями: обновляется или обновленно.

Refreshable удабно использовать на уровне бизнеслогики и view стейтов приложений.

implementation("io.github.pavelannin:monadic-refreshable-core")

About

Monadic is a distributed multiplatform Kotlin framework that provides a way to write code from functional programming

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages