function to be memoised with argument that is function, which might be passed another memoised function #86
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.
a function to be memoised, say
f
, has an argumentfn
that accepts function. If such argumentfn
is passed another memoised function, saygm <- memoise(g)
, the memoisedf
's cache may not hit as the hash in the memoisedf
would change whengm
is executed with new arguments and new key-value pairs are stored togm
's cache and the hash digest not only thegm
itself but also its enclosing environment, which contains the caching environmenthere is an example
to avoid hash the entire
gm
, the originalg
could be used instead, and to avoidg
's own enclosing environment problem andsrcref
problem, as can be seen in #84,as.character(body(g))
might be more appropriate