Skip to content

Instantly share code, notes, and snippets.

View Brian3647's full-sized avatar
:shipit:
💘 rust

víctor Brian3647

:shipit:
💘 rust
View GitHub Profile
@Brian3647
Brian3647 / monad.ts
Created December 10, 2023 10:52
TypeScript Monad function
interface IMonad<T> {
andThen: <U>(fn: (value: T, finish: () => void) => U) => IMonad<U>;
}
export const Monad = <T>(initial: T, finished = false): IMonad<T> => {
if (finished) {
return {
andThen: <U>(_: (_: T, _: () => void) => U) => {
return Monad(null, true);
},