A memoization algorithm that only caches the result of the latest set of arguments, where argument equality is determined via a provided equality function.
A memoization algorithm in which each function argument represents a new key, creating a trie of caches as defined by the array in your first argument.