Ruby的递归调用自己的函数作为参数

问题描述:

如何在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

这是你在找什么?

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

p hey(hey(hey())) # "Hey Hey Hey "