作家
登录

JavaScript的函数式编程,你了解吗?

作者: 来源: 2017-10-26 09:46:30 阅读 我要评论

 `new Map()` 
  • const map1 = Immutable.Map([ 
  •   ['one', 1], 
  •   ['two', 2], 
  •   ['three', 3] 
  • ]); 
  • const map2 = map1.set('four', 4); 
  • console.log([...map1]); // [['one', 1], ['two', 2], ['three', 3]] 
  • console.log([...map2]); // [['one', 1], ['two', 2], ['three', 3], ['four', 4]] 
  • // Use in place of `new Set()` 
  • const set1 = Immutable.Set([1, 2, 3, 3, 3, 3, 3, 4]); 
  • const set2 = set1.add(5); 
  • console.log([...set1]); // [1, 2, 3, 4] 
  • console.log([...set2]); // [1, 2, 3, 4, 5] 
  • 函数组合

    记不记得在中学时我们学过一些像 (f ° g)(x) 的器械?你那时可能想,“我什么时刻会用到这些?”,好了,如今就用到了。你预备好了吗?f ° g读作 “函数 f 和函数 g 组合”。对它的懂得有两种等价的方法,如等式所示: (f ° g)(x) = f(g(x))。你可以认为 f ° g 是一个零丁的函数,或者视作将调用函数 g 的结不雅作为参数传给函数 f。留意这些函数是大年夜右向左依次调用的,先履行 g,接下来履行 f。

    1. // h(x) = x + 1 
    2. // number -> number 
    3. function h(x) { 
    4.   return x + 1; 
    5. // g(x) = x^2 
    6. // number -> number 
    7. function g(x) { 
    8.   return x * x; 
    9. // f(x) = convert x to string 
    10. // number -> string 
    11. function f(x) { 
    12.   return x.toString(); 
    13. // y = (f ° g ° h)(1) 
    14. const y = f(g(h(1))); 
    15. console.log(y); // '4' 

    Ramda 和 lodash 之类的库供给了更优雅的方法来组合函数。我们可以在更多的在数学意义上处理函数组合,而不是简单地将一个函数的返回值传递给下一?函数。我们可以创建一个由这些函数构成的单一复合函数(就是 (f ° g)(x))。

    1. // h(x) = x + 1 
    2. // number -> number 
    3. function h(x) { 
    4.   return x + 1; 
    5. // g(x) = x^2 

        推荐阅读

        如何处理JavaScript内存泄露

      沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 几周前,我们开端写一个系列,>>>详细阅读


      本文标题:JavaScript的函数式编程,你了解吗?

      地址:http://www.17bianji.com/lsqh/38230.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)