Package com.jnape.palatable.lambda.monad
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 thisApplicative
andappB
, discarding thisApplicative's
result and returningappB
.default <B> MonadReader
<R, A, MR> discardR
(Applicative<B, MR> appB) Sequence both thisApplicative
andappB
, discardingappB's
result 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 alazy
instance 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's
environment after reading it but before running the effect.<B> MonadReader
<R, B, MR> pure
(B b) Lift the valueb
into 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's
environment after reading it but before running the effect.- Parameters:
fn
- the modification function- Returns:
- the
MonadReader
with a modified environment
-
flatMap
Chain dependent computations that may continue or short-circuit based on previous results. -
pure
Lift the valueb
into 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 alazy
instance 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 thisApplicative
andappB
, discarding thisApplicative's
result and returningappB
. This is generally useful for sequentially performing side-effects. -
discardR
Sequence both thisApplicative
andappB
, discardingappB's
result and returning thisApplicative
. This is generally useful for sequentially performing side-effects.
-