UNPKG

mathjs

Version:

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser and offers an integrated solution to work with numbers, big numbers, complex numbers, units, and matrices.

24 lines (21 loc) 654 B
// function utils /* * Memoize a given function by caching the computed result. * The cache of a memoized function can be cleared by deleting the `cache` * property of the function. * * @param {function} fn The function to be memoized. Must be a pure function. * @return {function} Returns the memoized function */ exports.memoize = function(fn) { return function memoize() { if (typeof memoize.cache !== 'object') { memoize.cache = {}; } var hash = JSON.stringify(arguments); if (!(hash in memoize.cache)) { return memoize.cache[hash] = fn.apply(fn, arguments); } return memoize.cache[hash]; }; };