函数式编程

今天去面试,面试官问我是否了解函数式编程,怎么说早上还瞄到这个名词,不过没注意看,现在先简单总结一下:

工业上的编程方式一般都是命令式编程,它解决的问题就是做什么的问题,比如人脑善于分析问题,即是执行的过程,给电脑下命令去执行;现在的c语言和java就是命令式编程;

函数式编程,对应的是声明式编程,本质是lambda算法;  如果是计算机的思考方式就是var一个新的数组,然后便利原数组并计算赋值。人类的思考方式则是够见一个函数fun,返回新的数组,能够被重复使用的;

react把过去不断重复构建UI的过程抽象了组件,且给定参数情况下渲染对应的UI界面。react能够充分利用很多函数式方法减少冗余代码,本身简单容易测试。函数式编程是react的精髓。

命令式编程在意的是解题步骤,

function invertTree(root){
    if(root === null){
        return root;
    }
    if(root.left){ 
        invertTree(root.left)
    }
    if(root.right){ 
        invertTree(root.right)
    }
    var tmp = root.left;
    root.left = root.right;
    root.right = tmp;
    return root;
}

原文:https://blog.csdn.net/u014328357/article/details/70598420 

编程式函数在意的是:数据如何映射,

function Tree(val,left,right){
    this.val = val;
    this.left = left;
    this.right = right;
}
function invert(node){ 
    if(node === null){ 
        return node
    }else{
        return new Tree(node.value, invert(node.right), invert(node.left))
    }
}

函数式编程就是借鉴了数学中的函数:给出一个值,根据这个值,返回一个恰当的值。而这个给出的值,也很可能是一个函数;

当给出的值是函数时,就是我们所说的高阶组件;

原文地址:https://www.cnblogs.com/naniandongzhi/p/9812862.html