Represents the function that will be memoized
Represents a function that, if it yields true, will mark the current cache element represented by K as invalid and rerun the memo function
The map used to store the cache of results to be fed back as a result of memoization
Executes the memoized function if the given input is new, otherwise returns the result from a previous execution.
Executes the memoized function if the given input is new, otherwise returns the result from a previous execution.
The input to execute upon
The result of the execution
Clears the internal memoization, allowing new results to be calculated from previously-used input.
Represents a generic form of memoization. Modified from Pathikrit Bhowmick's copy of Scala Memoization.
Represents the input to the memoized function
Represents the type of key to use for cached results
Represents the output of the memoized function
https://github.com/pathikrit/scalgos/blob/master/src/main/scala/com/github/pathikrit/scalgos/Memo.scala