CS61A 学习笔记 lecture 6 recursion

Posted ikventure

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS61A 学习笔记 lecture 6 recursion相关的知识,希望对你有一定的参考价值。

  • 开头依然是讲解lecture 5的未完成部分。
  • 24min开始 main topic 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具体怎么实现(经典案例:汉诺塔)
  • 自相似与分形几何,谢尔宾斯基三角、科赫曲线等

以上是关于CS61A 学习笔记 lecture 6 recursion的主要内容,如果未能解决你的问题,请参考以下文章

[2021 Spring] CS61A 学习笔记 lecture 9 Function Examples

[2021 Spring] CS61A 学习笔记 lecture 10 containers and sequences

[2021 Spring]CS61A 学习笔记 Homework 4: Trees, Data Abstraction

cs231n spring 2017 lecture13 听课笔记

[学习笔记] CS131 Computer Vision: Foundations and Applications:Lecture 9 深度学习2

[学习笔记] CS131 Computer Vision: Foundations and Applications:Lecture 1 课程介绍