美文网首页
两种编程思想的对比

两种编程思想的对比

作者: zxbyh | 来源:发表于2019-01-10 17:37 被阅读0次

    目标是一个很常见的应用,在一批雇员的集合里面,查找年龄大于等于21的员工的工资总和。

    一 函数式编程思想会这样实现(python):

    这段代码的逻辑如下:

    1 使用randmo.choice函数生成4个雇员的形成一个字典集合。
    2 选出这个集合里面年龄大于等于21的雇员,并把他们每一个人的工资放到一个新的集合。
    3 使用reduce函数,告诉它对这个工资的集合进行累加,然后得到结果。

    二 传统的过程编程思想会这样实现(java):

    这段代码的逻辑如下:

    1 新建一个List<Map<String,Object>> 集合。
    2 分别新建4个Map<String,Object> 并添加雇员的测试数据,并添加到List<Map<String,Object>> 集合。
    3 新建一个变量 salsryTmp,初始值为0;
    4 遍历集合,取出每一个map,如果当前map里面的age大于等于21,那么就让salsryTmp加上当前map里面的age。
    5 循环结束后,salsryTmp的值就是我们要的结果。

    三 总结

            如果你觉得上面的java代码非常直观且合乎逻辑,那说明你已经习惯按照计算机的思维模式进行思考了。通过创建 for 循环来遍历所有雇员并使用if判断,使用临时变量累计,这完全是为计算机服务的思路。函数式编程的一大特点就是尽量抛弃这种明显循环遍历的做法,而是把注意集中在解决问题本身,代码就是对问题目标的描述。

    相关文章

      网友评论

          本文标题:两种编程思想的对比

          本文链接:https://www.haomeiwen.com/subject/lkgarqtx.html