support Reader monad in R.of(Function) #3452
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ramda already supports binary curried functions as Reader monad:
map
composes the mapping function and the Reader functionchain
composes the chaining function in its first (value) argument with the Reader function and forwards the environment to the second argument.ap
is implemented so thatlift
≅R.converge
Still missing is the factory function
of
.Although users can easily write their own,
for convenience Ramda ought provide it as
of(Function)
.To illustrate a simple Reader function pipeline, I added some detailed examples to the documentation of
R.of
andR.chain
.If those examples are misleading I can remove or change them.
Furthermore, the
R.of
example is copied from @i-am-tom 's "Fantas, Eel, and Specification" article series which — sadly — seems to be offline now. I hope, we have his permission to use it here.