落語の頭山みたいな関数。関数の中で自分自身を呼び出す。
1: 階乗を計算する再帰関数
fact2 <- function(n)
{
if (n == 0) 1
else n*fact2(n-1) # この方が再帰関数の説明としてはよいが,R では else n*Recall(n-1) のように書くのがよい
}
> fact2(3)
[1] 6
2: 文字列を逆順に書き出す再帰関数
revstr <- function(str)
{
len <- nchar(str)
if (len == 0) {
cat("\n")
}
else {
cat(substr(str, len, len))
Recall(substr(str, 1, len-1))
}
}
> revstr("abcde")
edcba