再帰関数     Last modified: Aug 01, 2005

落語の頭山みたいな関数。関数の中で自分自身を呼び出す。

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


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI

Made with Macintosh