一个reddit线程提出了一个显然有趣的问题:
尾递归函数可以简单地转换为迭代函数.其他的,可以通过使用显式堆栈进行转换.可每次递归转化为迭代?
帖子中的(计数器?)示例是对:
(define (num-ways x y)
(case ((= x 0) 1)
((= y 0) 1)
(num-ways2 x y) ))
(define (num-ways2 x y)
(+ (num-ways (- x 1) y)
(num-ways x (- y 1))
Run Code Online (Sandbox Code Playgroud) 我正在编写我的问题的简单用例,这里是:
dic = {'a': 1, 'b': {'c': 2}}
Run Code Online (Sandbox Code Playgroud)
现在我想要一个在这个字典上运行的方法,根据键获取值.
def get_value(dic, key):
return dic[key]
Run Code Online (Sandbox Code Playgroud)
在不同的地方,将调用此泛型方法来获取值.
get_value(dic, 'a') 将工作.
是否有可能以2 (dic['b']['c'])更通用的方式获得价值.