programming-languages学习笔记–第3部分
1 First-Class Functions
函数式编程有几种不同的意义:
- 在大部分/所有情况下避免可变性(mutation)
- 像使用值一样使用函数
…
- 递归风格和递归数据结构
- 接近数学定义的风格
- 使用惰性的编程模型
first-class function: 可以在任何地方使用函数。
fun double x = 2 * x fun incr x = x + 1 val a_tuple = (double, incr, double(incr 7)) val eighteen = (#1 a_tuple) 9
val double = fn : int -> int val incr = fn : int -> int val a_tuple = (fn,fn,16) : (int -> int) * (int -> int) * int val eighteen = 18 : int