1. A method of operating a computing device to perform memoization, the method including determining whether or not a result of a function is stored in a cache and, if so, retrieving the result from the cache and, if not, calculating the result and storing it in the cache, characterised in that the method includes: transforming by the computing device at least one selected from the group composed of the input parameters and the output parameters of the function, the transforming being based on an analysis of the function and its input arguments to establish whether or not there is a possible relationship among and between the input parameters and output parameters of the function, the relationship reflecting redundancy.