我想在以下函数上使用R
包做一些记忆memoise
,将函数作为参数:
library(memoise)
func = function(x) x
slowFunc = function(a,f,b=2) {Sys.sleep(1); a+b}
quickFunc = memoise(slowFunc)
> system.time(slowFunc(2, func, 3))
user system elapsed
0 0 1
> system.time(slowFunc(2, func, 3))
user system elapsed
0.00 0.00 0.99
有两个连续的调用,第二个在时间上返回 1 秒,而我本可以预料到一些瞬间的事情。
这很奇怪,但是当参数是函数时它似乎memoise
不适用......函数如何在内存中表示以使其工作?