我最近又看了美丽的介绍到递归在“简单计划”的书(这里的link相关章节),在引入这个递归过程(在方案语言):Scheme to Python:递归过程最优雅的翻译?
(define (downup wd)
(if (= (count wd) 1)
(se wd)
(se wd (downup (bl wd)) wd)))
> (downup 'toe)
(TOE TO T TO TOE)
> (downup 'banana)
(BANANA BANAN BANA BAN BA B BA BAN BANA BANAN BANANA)
我试图将该程序翻译成python,我在日常工作中使用该程序。结果如下:
def recursivefun(word):
if len(word) == 1:
return word
else:
x = []
x.append(word)
x.extend(recursivefun(word[1:]))
x.append(word)
return x
print recursivefun("ciao")
# ==> ['ciao', 'iao', 'ao', 'o', 'ao', 'iao', 'ciao']
所以我的问题是:有没有更好的方式来表示这个递归过程在python中?或者,也许更“优雅”的方式?
我刚刚注意到''downup'在你的例子中的字母结尾,而'recursivefun'从前面截断了字母。这是不同的故意吗? – Davy8 2011-03-14 15:05:11