FP

FP concepts实际应用

https://www.zhihu.com/question/490747995

  1. 闭包和高阶函数:数不胜数
  2. 受限的副作用:如 monad 启发的 async function(容器固定,全程promise)
  3. 代数数据类型(algebraic data types):如 Rust 中的 Result、Option 等
  4. 惰性求值:如 Python3 的 map 等
  5. 参数化多态(Parametric polymorphism):如 Go 2 中的泛型;不同类型具有相同的行为
    1. 特设多态(Ad-hoc polymorphism):trait;不同的类型表现出不同的行为
  6. 元编程:如 Rust 的过程宏
  7. 模式匹配
  8. typeclass:非继承组合

类型可定义,尽量受限使结果可预知

ad-hoc 与 Parametric https://zhuanlan.zhihu.com/p/104248345 代数数据类型 https://www.zhihu.com/question/24460419