2016-08-01 16 views
0

Rubyで関数を引数として何度も繰り返し使用する「複数の再帰関数」を呼び出すにはどうすればよいですか?引数として独自の関数を呼び出すRuby再帰

それで、私はfibonacci sequenceのような通常の再帰関数を意味するものではありません。 hey()という関数があるとしましょう。文字列"Hey"を、関数内で呼び出される関数の数がであることを何度も表示します。明確にする

hey() #=> "Hey " 
hey(hey()) #=> "Hey Hey " 
hey(hey(hey())) #=> "Hey Hey Hey " 

を私は前に、このような任意の例を見たことがない

def hey(*args) 
    "Hey " 
end 

def hey(*args) 
    "Hey " + hey(*args) 
end 

def hey(n) 
    "Hey " + hey(n) 
end 

を試してみました。私はそれが実行可能であることを知っているが、どのように確かではない。 * argsは必須ですか? *argsの代わりに正規の引数を渡す必要がありますか?

答えて

5

これはあなたが探しているものですか?

def hey(str="") 
    "Hey " + str 
end 

p hey(hey(hey())) # "Hey Hey Hey " 
関連する問題