zoukankan      html  css  js  c++  java
  • 函数式编程

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

    工业上的编程方式一般都是命令式编程,它解决的问题就是做什么的问题,比如人脑善于分析问题,即是执行的过程,给电脑下命令去执行;现在的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))
        }
    }

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

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

  • 相关阅读:
    常用的模板标签
    django的静态文件的引入
    模板路径的查找
    类型初始值设定项引发异常
    ASP.NET基础笔记
    ASP.NET 学习笔记
    【1】验证适配器
    同时安装vs2010和VS2012后IEnumerable<ModelClientValidationRule>编译错误
    跨窗体传值
    扩展方法
  • 原文地址:https://www.cnblogs.com/naniandongzhi/p/9812862.html
Copyright © 2011-2022 走看看