Skip to content

Latest commit

 

History

History
34 lines (13 loc) · 769 Bytes

14-Recursion.md

File metadata and controls

34 lines (13 loc) · 769 Bytes

14-Recursion

递归的 helper methods

在同一个问题下, 选取优雅的递归实现可能会让代码变得非常优雅。

递归 problem 和 递归 data

很多问题可以用递归描述, 有些数据也很适合递归表示, 比如文件系统。

mutual recursion

如果函数A 和函数B 互相不停调用,叫做 mutially recursive。

递归和迭代

在遇到典型的 递归型问题 或递归型数据时, 可以使用递归实现。

  1. 递归的每个变量都是不可变的, 没有side effect,不会修改外界的其他变量。,
  2. 递归需要多余的空间, 即栈。

函数式编程: 没有side effect 的编程叫 paradigm 叫

命令式编程: 使用 variable 和 loop 的变成叫