https://github.com/rajasharan/java8-easy-monads
Simple Monad implementations for java 8
https://github.com/rajasharan/java8-easy-monads
easy-monads either-monad java-8 java8 monad monads reader-monad writer-monad
Last synced: 12 months ago
JSON representation
Simple Monad implementations for java 8
- Host: GitHub
- URL: https://github.com/rajasharan/java8-easy-monads
- Owner: rajasharan
- License: mit
- Created: 2017-01-31T05:51:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-19T10:42:19.000Z (over 9 years ago)
- Last Synced: 2025-01-13T01:09:55.936Z (over 1 year ago)
- Topics: easy-monads, either-monad, java-8, java8, monad, monads, reader-monad, writer-monad
- Language: Java
- Size: 67.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Easy Monads in Java 8
The purpose of this project is to teach myself about Monads and Functors.
And the best way to teach myself was by implementing some of the commonly used monads and functors.
As a starting step my goal is to implement `map` and `flatMap` for each monad as well as show some good usage examples.
I'm still undecided on implementing `ap` for Applicatives but if I find a very good example to showcase then I plan to do it.
The examples also try to show composing monads via chaining them as method calls.
The following monads are implemented so far:
* [Either Monad](/core/src/main/java/com/easy/monads/Either.java)
* [Writer Monad](/core/src/main/java/com/easy/monads/Writer.java)
* [Reader Monad](/core/src/main/java/com/easy/monads/Reader.java)
* WIP: State Monad
#### Example Usages
* [Either Monad Examples](/examples/src/main/java/com/easy/monads/examples/EitherExamples.java)
* [Writer Monad Examples](/examples/src/main/java/com/easy/monads/examples/WriterExamples.java)
* [Reader Monad Examples](/examples/src/main/java/com/easy/monads/examples/ReaderExamples.java)
## How to add dependency
```
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.rajasharan:java8-easy-monads:master-SNAPSHOT'
}
```
## Run examples locally
```sh
$ ./gradlew :examples:run
...
```
### [LICENSE](/LICENSE)
The MIT License (MIT)