Recall()

  • Recall()関数というのを教えてもらった
# Recall()を使う
## A trivial (but inefficient!) example:
fib <- function(n)
   if(n<=2) { if(n>=0) 1 else 0 } else Recall(n-1) + Recall(n-2)
fibonacci <- fib; rm(fib)
## renaming wouldn't work without Recall
fibonacci(10) # 55

# Recall()を使わない
fib2 <- function(n)
   if(n<=2) { if(n>=0) 1 else 0 } else fib2(n-1) + fib2(n-2)
fibonacci2 <- fib2; rm(fib2)
## renaming wouldn't work without Recall
fibonacci2(10) # エラーが出る
> fibonacci(10) # 55
[1] 55
> fibonacci2(10) # エラーが出る
 以下にエラー fibonacci2(10) :  関数 "fib2" を見つけることができませんでした