2016-08-01 44 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 " 
相關問題