早期计算机理论有两个理念,一个是图灵的state machine, 另一个理论是图灵的博士导师Alonzo Church的 stateless machine. 图灵理论上的是imperative language, 而Alonzo Church理论上的是FP,如Lisp。 PF 的数学基础是 lamda calculus, PF 因为没有state, 所以没有 side effects, 不容许mutation ,可以写 inline function, anonymous function, 用 expression trees, 所以写出来的code 非常简洁漂亮,而且不会出错。更大的好处是因为stateless, 所以不同functions 可以同时运行,特别是在 múltiples cores ,运行速度快。而state machine 的 concurrent control 是很麻烦易错的。由于FP的诸多好处,不仅新的FP语言不断涌现,而且几乎所有流行语言,Java, Python, C#, C++,,,,等等都支持FP
FP有自己独特的理论,独特的数学。如果没有学过FP, 很难几天内就可以掌握一门新的FP。 懂Java的可以几天写C#,但熟练Fortran的,不可能几天就玩转Lisp