Loading...
MonetJS API extension draft
Many devs working with monet asked for more operators…
New operators
Common
for: Identity, List, Either, Maybe, Validation and NEL
Instance methods:
.forEach(fn: (v: T) => void): void
- for side effects on wrapped value
.every(fn: (v: T) => boolean): boolean
- ( see scala Option
forall
)
.exists(fn: (v: T) => boolean): boolean
( like js Array
.some()
)
.contains(v: T): boolean
- strict equality
.iterator(): Iterator<T>
[Symbol.iterator](): Iterator<T>
- to make them work with
for … of
and
...spread
.toArray(): T[]
( already on List )
.toList(): List<T>
( already exists on Maybe )
.toSet(): Set<T>
.to<W>(const: <X>(i: Iterable<X>) => W<X>): W<T>
.mapOver(v: X): Maybe<Y>
if we have
Maybe<(inp: X) => Y>
.mapTo(v: V): Maybe<V>
Maybe
…for
Maybe<T>
Instance methods:
.filterNot(fn: (v: T) => boolean): Maybe<T>
.orLazy(fn: () => T): Maybe<T>
( remove overloading of
orJust
/
orSome
)
.getOrElse(v: T): T
( alias for
orJust
/
orSome
)
.orNull(): T | null
(to
wire it back with classic JS env)
.catchMap(A → M[B]): M[B
]
(lazy
version of
orElse
)
Static methods
(constructors):
.fromFalsy(v: T)
( shortcut for
.fromNull(v: T).filter(Boolean)
)
Eiter
…for
Either<E, V>
Instance methods:
.fold( … )
- alias for
.cata( … )
.swap(): Either<V, E>
.catchMap(A → M[B]): M[B
]
Validation
same as for Either
Please turn on JavaScript to use Paper in all of its awesomeness. ^_^
New operators
Common
.mapOver(v: X): Maybe<Y>if we haveMaybe<(inp: X) => Y>.mapTo(v: V): Maybe<V>Maybe
Eiter
Validation