Interface MonadReader<R, A, MR extends MonadReader<R,?,MR>>
- Type Parameters:
R- the environmentA- the outputMR- the witness
- All Superinterfaces:
Applicative<A,MR>, Functor<A, MR>, Monad<A, MR>
- All Known Subinterfaces:
BiMonoidFactory<A,B, C>, BiPredicate<A, B>, BiSemigroupFactory<A, B, C>, Effect<A>, Fn0<A>, Fn1<A, B>, Fn2<A, B, C>, Fn3<A, B, C, D>, Fn4<A, B, C, D, E>, Fn5<A, B, C, D, E, F>, Fn6<A, B, C, D, E, F, G>, Fn7<A, B, C, D, E, F, G, H>, Fn8<A, B, C, D, E, F, G, H, I>, Kleisli<A, B, M, MB>, Monoid<A>, MonoidFactory<A, B>, Predicate<A>, Semigroup<A>, SemigroupFactory<A, B>
- All Known Implementing Classes:
$, Absent, AddAll, All, Alter, And, Any, AutoBracket, Between, Both, Bracket, CartesianProduct, CatMaybes, Clamp, CmpEq, CmpEqBy, CmpEqWith, Coalesce, Collapse, Collapse, Compare, Compose, Compose, Concat, Cons, Constantly, Cycle, Difference, Distinct, Downcast, Drop, DropWhile, Empty, Endo, EndoK, Eq, Filter, Find, First, Flatten, FoldLeft, FoldRight, Force, GroupBy, GT, GTBy, GTE, GTEBy, GTEWith, GTWith, Head, Id, IfThenElse, InGroupsOf, Init, Inits, Intersection, Intersperse, Into, Into1, Into3, Into4, Into5, Into6, Into7, Into8, Iterate, Join, Last, Last, LazyRec, LeftAll, LeftAll, LeftAny, LeftAny, LiftA2, LiftA3, LiftA4, LiftA5, LiftA6, LiftA7, LT, LTBy, LTE, LTEBy, LTEWith, LTWith, Magnetize, MagnetizeBy, Map, Matching, Max, MaxBy, MaxWith, Merge, Merge, MergeHMaps, MergeMaps, Min, MinBy, MinWith, Not, Occurrences, Or, Over, Partition, Peek, Peek2, Pre, PrependAll, Present, PutAll, RateLimit, Re, ReaderT, ReduceLeft, ReduceRight, Repeat, Replicate, Reverse, RightAll, RightAll, RightAny, RightAny, RunAll, RunAll, ScanLeft, Sequence, Set, Size, Slide, Snoc, Sort, SortBy, SortWith, Span, State, StateT, Tail, Tails, Take, TakeWhile, Times, ToArray, ToCollection, ToMap, Trampoline, Trivial, Tupler2, Uncons, Under, Unfoldr, Union, Until, Upcast, View, Xor, Zip, ZipWith
A monad that is capable of reading an environment
R and producing a lifted value A. This
is strictly less powerful than an Fn1, loosening the requirement on Contravariant (and therefore
Profunctor constraints), so is more generally applicable, offering instead a local(Fn1)
mechanism for modifying the environment *after* reading it but before running the effect (as opposed to
Contravariant functors which may modify their inputs *before* running their effects, and may therefore alter
the input types).-
Method Summary
Modifier and TypeMethodDescriptiondefault <B> MonadReader<R, B, MR> discardL(Applicative<B, MR> appB) Sequence both thisApplicativeandappB, discarding thisApplicative'sresult and returningappB.default <B> MonadReader<R, A, MR> discardR(Applicative<B, MR> appB) Sequence both thisApplicativeandappB, discardingappB'sresult and returning thisApplicative.<B> MonadReader<R, B, MR> Chain dependent computations that may continue or short-circuit based on previous results.default <B> MonadReader<R, B, MR> Covariantly transmute this functor's parameter using the given mapping function.default <B> Lazy<? extends MonadReader<R, B, MR>> Given alazyinstance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.MonadReader<R, A, MR> Modify thisMonadReader'senvironment after reading it but before running the effect.<B> MonadReader<R, B, MR> pure(B b) Lift the valuebinto this applicative functor.default <B> MonadReader<R, B, MR> zip(Applicative<Fn1<? super A, ? extends B>, MR> appFn) Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports.
-
Method Details
-
local
Modify thisMonadReader'senvironment after reading it but before running the effect.- Parameters:
fn- the modification function- Returns:
- the
MonadReaderwith a modified environment
-
flatMap
Chain dependent computations that may continue or short-circuit based on previous results. -
pure
Lift the valuebinto this applicative functor. -
fmap
Covariantly transmute this functor's parameter using the given mapping function. Generally this method is specialized to return an instance of the class implementing Functor. -
zip
Given another instance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports. -
lazyZip
default <B> Lazy<? extends MonadReader<R,B, lazyZipMR>> (Lazy<? extends Applicative<Fn1<? super A, ? extends B>, MR>> lazyAppFn) Given alazyinstance of this applicative over a mapping function, "zip" the two instances together using whatever application semantics the current applicative supports. This is useful for applicatives that support lazy evaluation and early termination. -
discardL
Sequence both thisApplicativeandappB, discarding thisApplicative'sresult and returningappB. This is generally useful for sequentially performing side-effects. -
discardR
Sequence both thisApplicativeandappB, discardingappB'sresult and returning thisApplicative. This is generally useful for sequentially performing side-effects.
-