高阶函数

将函数功能,通过一定的形式组合在一起,某些函数的返回值成为另一些函数的参数,组合起来,实现一些功能。

<!-- 高阶函数--><!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title>
</head>
<body><script type="text/javascript">function compose(f,g){return function(){return f.call(null,g.apply(null,arguments));}}var square = function(x){ return x*x;}var sum = function(x,y){return x+y;}var squareOfSum = compose(square,sum);</script>
</body>
</html>

记忆

一种缓存技巧,用来避免重复计算

在闭包里,设定一个私有变量,存储key-value值对。
调用函数时,检查参数,如果该参数被计算过,那么,直接从结果集里查询。
如果没有被计算过,计算,然后将结果存入结果集。

<!-- 记忆功能测试--><!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title>
</head>
<body><script type="text/javascript">//一个闭包,存储私有cache//返回这样一个函数:如果变量计算过,直接提取,如果没有计算过,计算并存储。function memorize(f){var cache = {};return function(){var key = arguments.length + Array.prototype.join.call(arguments,",");if(key in cache) return cache[key];else return cache[key] = f.apply(this,arguments);}}//递归function factorial(n){return (n<=1)?1: n*arguments.callee(n-1);}var mf = memorize(factorial);</script>
</body>
</html>

《权威指南》笔记 - 8.8函数式编程相关推荐

  1. HTML5与CSS3权威指南笔记案例1

    第1章 <!DOCTYPE html> <meta charset = "UTF-8"> <title> Search </title&g ...

  2. 阅读笔记–Java 8函数式编程,建议看书,作者高屋建瓴

    阅读笔记–Java 8函数式编程 书籍代码 为什么需要再次修改Java 1996年1月,Java1.0发布,商业发展需要更复杂的应用,跑在功能强大的多核CPU机器上.带有高效运行时编译器的Java虚拟 ...

  3. JavaScript权威指南 第15章 网络编程 第三部分

    JavaScript权威指南 第15章 网络编程 第三部分 可伸缩矢量图形 15.7.1 在HTML中使用SVG 15.7.2 编程操作SVG 15.7.3 通过JavaScript创建SVG图片 1 ...

  4. 《Cortex-M3 权威指南 笔记》

    因了命途中的你们,我才没有荒芜了青春. – 莫言 一.介绍 整个 MCU 只有Cortex-M3 处理器内核(中央处理单元(CPU))和调试器是ARM设计的,而存储器,外设,I/O以及其它功能块是芯片 ...

  5. Scala学习教程笔记二之函数式编程、Object对象、伴生对象、继承、Trait、

    1:Scala之函数式编程学习笔记: 1:Scala函数式编程学习:1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法:class User {private v ...

  6. Python学习笔记__4章 函数式编程

    # 这是学习廖雪峰老师python教程的学习笔记 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程 ...

  7. Java性能优化权威指南--笔记

    出处:http://xiongpq.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文 ...

  8. python函数式编程读取数据-python学习笔记9:函数式编程

    函数式编程(FunctionalProgramming) 基于lambda演算的一种编程方式 程序中只有函数 函数可以作为参数,同样可以作为返回值 纯函数式编程语言: LISP, Haskell Py ...

  9. netty权威指南笔记-以回车换行结尾的消息如何处理半包问题

    概述 TCP底层会发生粘包和拆包,这个是TCP的一个特性.为了减少网络数据传输的次数,TCP总是希望让网络数据到达一定量级的时候才将数据发送出去,而不是缓存区一有数据就马上发送数据. TCP底层会根据 ...

  10. 学习笔记:Python3 函数式编程

    仅为个人查阅使用,如有错误还请指正. 函数式编程是一种抽象计算的编程模式. 函数式编程的特点 ​ 1.把计算视为函数而非指令. ​ 2.纯粹的函数式编程语言编写的函数没有变量. ​ 3.支持高阶函数, ...

最新文章

  1. 如何成为python 数据分析师_如何成为一名真正的数据分析师或者数据工程师
  2. springboot 启动的时候报错 Error creating bean with name 'solrClient'
  3. Ubuntu 搜狗输入法不能输入中文解决
  4. 实践1-qq邮箱主页
  5. 项目案例分享二:密码策略与上次交互式登录
  6. lnmp之php5.6.29安装
  7. opencv如何显示中文?
  8. 每天一道LeetCode-----寻找地增序列中第一个大于等于目标元素的位置
  9. MIPS指令以及数据通路
  10. mockito手动注入依赖_依赖注入–手动方式
  11. 数据结构与算法之堆与堆排序
  12. Android:活动中的提示 (Tosat) 和打印信息 (Log)
  13. linux nfs挂载域名,Linux系统挂载NFS的方法
  14. 模糊控制 进化算法 PID参数整定
  15. Hbuilder如何替换选中代码快捷键
  16. java socket分包粘包 代码_分享java中处理socket通信过程中粘包情况的实例代码
  17. Egencia smartmix航班排名模型背后的运营研究
  18. python flask项目结构_Flask项目结构
  19. 加密指数有什么好买的?想象空间可能还没打开……
  20. win10如何重新安装微软应用商店

热门文章

  1. rok 万国觉醒 资源分析 地图资源
  2. c语言程序由一个或多个函数,一个C源程序可由一个或多个函数组成。()
  3. 网站文章更新频率对SEO影响大吗?
  4. 游戏美术3D建模次世代制作流程图文详解
  5. Glide加载图片完成的回调
  6. 计算机二级vp是什么意思,国家计算机二级VP笔试真题.doc
  7. C++:给定一个二维点集,找到所有的整体对称轴
  8. 共享安装 cacti 过程中的一些经历 cacti 中文-linux - sun solaris
  9. Mac M1 nvm install失败问题
  10. 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目