关于函数式编程中的map技术

读了下酷壳的函数式编程 原网址:http://coolshell.cn/articles/10822.html

深的看不懂 大概就看懂一个describe what to do, rather than how to do it 

其中有一段感觉就是说白了 我们需要把循环干掉 留下可读的文法

而关键里面有个技术就是map函数 或者说操作

其中给出了JS中的MAP函数的实现

var map = function (mappingFunction, list) {
  var result = [];
  forEach(list, function (item) {
    result.push(mappingFunction(item));
  });
  return result;
};

我们看到 这个函数本质就是 传进一个函数和一个array 

然后遍历这个array用函数操作每一个值之后返回结果。

这个的好处在于 他可以把类似这样一段代码 代码段A:

<?php
foreach($list as $v){
    .....
    大段对$v的操作 比如这些个操作的目的是“判断中奖情况”
    .....
}

变成这样一种款式代码段 B(“判断中奖情况”是函数名字)

判断中奖情况($v){
    .....
    判断中奖情况处理逻辑
    .....
}
map(判断中奖情况,$list);

一瞬间代码就会变得非常具有可读性。。。

而且一些临时变量 比如foreach里面的$V 也被封装了起来

我们能一眼就看出 这个代码的要做的事情是遍历List判断每个人的中奖情况

A是描述我们怎么做这件事情,而B是在描述我们要干嘛。这个就是函数式编程的优越之处。

总结一下就是说

把代码逻辑封装成了函数后,我们就相当于给每个相对独立的程序逻辑取了个名字,于是代码成了自解释的



你可能感兴趣的:(函数式编程)