• 数组
    • [1, 1, 3, 5, 5].reduce(function(x, y){ return x + y;})
    • [1, 4, 9].map(function(num){return num * 2;})
  • 高阶函数(higher-order function)
    • 操作函数的函数, 接收函数作为参数, 返回函数
  • 不完全函数(partial function)
    • 一次调用拆成多次调用,每次调用返回一个函数,如f(1,2)(3,4)(5,6)
      • 每次调用叫做不完全调用(partial application)
  • 不变式
    • 循环不变式
      • 用于形式化证明正确性
      • 描述
        • 有循环变量
        • 算法初始、保持、终止时, 某特性不变, 如选择排序中, arr[0,…,j-1]一直有序
    • 类(或数据类型)不变式
      • 并发时, 不变的成员关系
        • 如, 并发临界区(同时只能一个线程占用)
  • cps(continuation passing style)
    • 传入处理函数, 处理函数中传处理函数
  • curry
    • f(1,2,3)改写成f(1).f(2).f(3)
  • thunk
    • 触发函数, 如 f(){_f(1)}