clean up
This commit is contained in:
14
src/main/kotlin/blitz/func/Monad.kt
Normal file
14
src/main/kotlin/blitz/func/Monad.kt
Normal file
@@ -0,0 +1,14 @@
|
||||
package blitz.func
|
||||
|
||||
class Monad<O> internal constructor(
|
||||
val impure: () -> O
|
||||
)
|
||||
|
||||
fun <O> unit(v: O): Monad<O> =
|
||||
Monad { v }
|
||||
|
||||
fun unit(): Monad<Unit> =
|
||||
Monad { }
|
||||
|
||||
fun <I, O> Monad<I>.bind(op: (I) -> O): Monad<O> =
|
||||
Monad { op(this@bind.impure()) }
|
Reference in New Issue
Block a user