Rにno-op関数があり、パラメーターの評価にコストがかかる場合でも、すぐに返されますか?関数の条件付き置換を探していstopifnot
ます。
> noop(runif(1e20))
# returns immediately and uses no memory
私はこれがうまくいくと思います:
noop <- function(...) invisible(NULL)
ここで遅延評価が助けになります:
R> system.time(replicate(1e4, noop(runif(1e2))))
user system elapsed
0.01 0.00 0.01
R> system.time(replicate(1e4, noop(runif(1e5))))
user system elapsed
0.01 0.00 0.02
R> system.time(replicate(1e4, noop(runif(1e8))))
user system elapsed
0.01 0.00 0.01
R> system.time(replicate(1e4, noop(runif(1e11))))
user system elapsed
0.01 0.00 0.01
R>
したがって、Nを増やしても、実行時の増加は見られません。