EN | RU
Monadic is a distributed Kotlin multiplatform library that provides the ability to use functional programming in Kotlin.
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.
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>"))
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")
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")
Utilities for functions in a functional style: composition, currying, etc.
implementation("io.github.pavelannin:monadic-function-core")
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")
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")
A set of utilities that extend the capabilities of LCE
and `Either'.
implementation("io.github.pavelannin:monadic-lce-either")
The Optinal
monad is a functional construct used for a value that can be `null'.
implementation("io.github.pavelannin:monadic-optional-core")
A set of utilities that extend the capabilities of Optional
and `Either'.
implementation("io.github.pavelannin:monadic-optional-either")
Тип Refreshable
- это функциональная конструкция, используемая для расширения любого типа
состояниями: обновляется или обновленно.
Refreshable
удабно использовать на уровне бизнеслогики и view стейтов приложений.
implementation("io.github.pavelannin:monadic-refreshable-core")