CS61A 学习笔记 lecture 6 recursion

lecture 5

example 9 delayed recursion

  • 实际应用中不会遇到这种代码,但是便于加深对environment及frame的理解
  • QA:当一个value没有在local frame中提及,但是在parent frame中存在,也可以在local中使用。
    image
    print_sums(1)(3)(5)调用可以分为3步:
    image

example 10 currying

  • currying 指的是将一个多参数函数转换为单参数函数,该函数返回一个需要传入剩余参数的函数。
    image

lecture 6 recursion 递归

review:Philosophy of Functions

  • 语法和语义
  • 函数抽象

递归和归纳

递归思维是归纳思维的一种。

递归
  • base case
  • Nth case可以由(N-1)th case和N的表达式表示
归纳

子问题和自相似
  • 谢尔宾斯基三角/谢尔宾斯基地毯的描述与python表示
(个人补充)

递归是数学归纳法思维的编程体现

  • 链条:计算过程存在递归链条
  • 基例:存在一个或多个不需要再次递归的基例
  • 递归链条只关心n与n-1的关系,不关心n-1具体怎么实现(经典案例:汉诺塔)
  • 自相似与分形几何,谢尔宾斯基三角、科赫曲线等
posted @ 2021-05-28 21:50  ikventure  阅读(490)  评论(0编辑  收藏  举报