每个人都应该懂点"递归"
Stefan
由 Stefan
发布于 2015年11月28日
| 更新于 2015年11月29日
tinyfool
等0人欣赏。
pre: 题目继承自池老师的"每个人都应该懂点XXX系列"
读了一篇介绍"递归"概念的文章,原文在"iOS开发"公众号,作者是唐巧。文章写的很好。
文中提到"递归是非常反人类的思维方式"。没错,生活中人们很少会意识到递归这个概念。
但是,清楚认识递归的概念以后,我发现递归思想在生活中及其常见,就是"不断尝试,不断失败,反复练习,不断迭代。"
function getAbility(currentAbility) {
var enhancedAbility = justDoIt(currentAbility); //just do it, 不要犹豫!总会有收获!
if (enhancedAbility === success) { //success在你心中是怎样定义的呢?
return enhancedAbility; //经历了100次失败,终于成功了!!
} else {
getAbility(enhancedAbility) //失败了不要怕!继续前行!
}
}
我们get新技能的过程,就是反复迭代的过程,不断的经历失败和挫折,直到最后成功。
迭代中有一个很重要的概念,叫"退出条件"。生活中,"退出条件"就是我们对成功的定义。如果将成功定义为"十全十美,比别人强",那么将在迭代中无法退出,直至最后把自己搞死。
共6条回复
楼长
·
adad184
回复于 2015年11月29日
这明明是循环吧?
2楼
·
tinyfool
回复于 2015年11月29日
他的代码是递归
不过迭代,循环、递归,我认为还是三个不同的概念
当然,很多时候迭代和递归是有关联的
3楼
·
StevenZhang
回复于 2015年11月29日
4楼
·
adad184
回复于 2015年11月29日
我的意思是 你代码中举的例子 用循环来描述更合适
5楼
·