CS61A 笔记
CS61A笔记(自用)[更新中]
本笔记仅记录部分知识点
Lecture 2 函数
1 | print(print(1), print(2)) |
print这个函数返回值是None,它还有一个副作用就是打印并换行。
所以先打印1,换行,再打印2,再换行,再打印None None。
Lecture 4 高阶函数
Generalization(泛化):
e.g. 图形面积函数的泛化
1 | from math import pi, sqrt |
我们可以看到,三个函数有共性的部分:r*r。所以可以将其泛化为一个新的函数area:
1 | from math import pi, sqrt |
在python里,函数也可以作为参数而传入其它函数。
e.g. 自然数求和、立方求和二者也可以进行泛化
1 | def sum_naturals(n): |
将这样共性的求和过程泛化为summation:
1 | def natural(k): |
make_adder(这个我一开始也有一点没理解上网查阅得知这叫做“函数柯里化”:函数柯里化 - ChoZ - 博客园):
1 | def make_adder(n): |
调用该函数:make_adder(1)(2),1被绑定到n,并返回adder这个函数;后面的2被绑定到k,然后返回k+n这个数值。
为什么要使用柯里化?
- 部分应用: 柯里化使得我们可以创建一个新函数,将一些参数固定,剩下的参数稍后再提供。这对于重复使用某些参数值的场景非常有用。
- 提高可重用性: 柯里化可以使函数更加灵活和可复用。通过预先提供部分参数,剩下的参数可以通过不同的函数调用来组合。
- 函数式编程: 柯里化是函数式编程中的重要概念,支持构建可组合的函数。它鼓励我们通过组合小的、简洁的函数来构建复杂的逻辑。
- Title: CS61A 笔记
- Author: Realknow
- Created at : 2026-02-27 12:19:16
- Updated at : 2026-03-04 22:23:54
- Link: https://realknowtech.github.io/2026/02/27/CS61A-笔记/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments