再帰関数は、
> myfunc <- function(x) {
+ if (x == 1)
+ 1
+ else
+ x * myfunc(x - 1)
+ }
> myfunc(5)
[1] 120
とも書けるが、名前を変えてしまうと動かない。
> yourfunc <- myfunc
> rm(myfunc)
> yourfunc(6)
以下にエラー yourfunc(6) : 関数 "myfunc" を見つけることができませんでした
Recall()を使うと名前を変えても動く。
> myfunc <- function(x) {
+ if (x == 1)
+ 1
+ else
+ x * Recall(x - 1)
+ }
> myfunc(6)
[1] 720
> yourfunc <- myfunc
> rm(myfunc)
> yourfunc(6)
[1] 720
http://ofmind.net/doc/r-intro-lecture
0 件のコメント:
コメントを投稿