我们的目的是 可读性强+可维护的代码。
    函数式的编程方式只是其中之一。
    在入门阶段 要明白数据处理“流”的概念。还要明白声明式的写法是什么样的。
    一个待处理的数据,经过多个函数的加工处理,最终得到output的过程。


    最简单的优化方法:抽象(拆分)-》组合-》构建输入输出
    1.命令式的代码中抽象出子程序(即函数)
    这里仅仅抽象出一个函数就可以了,而不用管是否符合函数式的定义。
    这里说的子程序也就像代码大全第七章里面的提到的子程序一样。
    2.将函数组合起来 f(g(h(x)))
    这里的组合方式有很多种。


    理解了上面的东西,这里有有一篇阮一峰写的 pointfree编程风格链接


    第二点:
    在函数式的学习过程中会用到很多辅助函数(形式为HOF)。
    这些函数都仅仅是一种行为的抽象。因为抽象所以可能暂时难以理解。可以先不了解其内部实现的机制,先从宏观上去了解其作用就行。
    例如:pipe compose partial curry 等


    为什么要了解 immutable
    const is just about assignment immutability
    what we want is value immutability