函数式JavaScript编程基础概念:Curry和Partial Application

iefreer 发表于 2017-01-05 16:36:51

标签: javascript, functional, curry

- +

本文介绍JS函数式编程中的两个概念:柯里(Curry)和部分应用程序(Partial Application)。

什么是应用程序(Application)

将函数应用于其参数以产生返回值的过程。

什么是部分应用程序

将函数应用于某些参数的过程,该部分应用的函数被返回供后续使用。换句话说,就是一个函数,接收一个多参数函数作为其参数,并返回一个使用较少参数的函数以完成下一步的调用,这个返回函数把部分参数作为固定值,而将其余参数作为参数以完成函数应用。

什么是柯里函数

Curry是一个函数,它接收一个以多参数作为输入的函数作为参数,并返回只带一个参数的函数。

不同的地方在于部分应用程序返回类型不确定,而Curry总是返回统一的函数类型。Curry可以被看作是部分应用程序的一个特例。


Curry可以分开其所有的参数,然后以标准方式来处理这些参数。

此外,Curry函数有一个内置的迭代器机制:Curry函数一次只部分应用在一个参数上,调用返回函数的作用是告诉函数接着执行应用程序的下一步。

possitive(0) negative(0) views596 comments0
私信 收藏 分享
分享到

发送私信

最新评论

请先 登录 再评论.
相关文章
  • WebGL、Asm.js和WebAssembly概念简介

    随着HTML技术的发展,网页要解决的问题已经远不止是简单的文本信息,而包括了更多的高性能图像处理和3D渲染方面。这正是要引入WebGL、Asm.js和WebAssembly这些技...

  • CSS3人行走动作图解和动画实现

    对于人类而言,行走是一种很自然的想要前进并防止跌倒的一组动作重复。大部分人1岁就学会了走路,但至此以后的几十年间,或许我们从来没留意过自己行走姿势。当...

  • JavaScript事件模型图解

    在JavaScript中用户交互的核心部分就是事件处理。本文为对事件模型和处理机制的总体性描述。Event是什么?
    event是用户操作网页时发生的交互动作,比如clic...

  • 使用CSS3 box-decoration-break特性实现多行文本样式

    当文章中的长文本被自动断行为多行文本时,其样式可能会出乎我们的设计。本文介绍如何使用CSS3中的box-decoration-break特性来处理多行元素样式。
    按照规范...

  • CSS3弹性布局弹性流(flex-flow)属性详解和实例

    弹性布局是CSS3引入的强大的布局方式,用来替代以前Web开发人员使用的一些复杂而易错hacks方法(如使用float进行类似流式布局)。其中flex-flow是flex-direction...

  • 使用SVG和CSS3创建圆形进度条动画

    圆形进度条是一个经典的控制面板元素,常用于显示任务进度,比如用户档案的完整程度,或者升级状态。有很多方法来实现圆形进度条,比如用JS, CSS3, Canvas, SVG...

  • Three.js入门教程6 - 创建全景图和纹理

    全景图非常酷。使用Three.js做一个属于自己的全景图并不是那么困难。要做一个全景图,你需要一个软件用来做一张全景图片。我使用了iPhone上的Microsoft Photosyn...

  • WebGL入门教程1 - 3D绘图基础知识

    现代浏览器努力使得Web用户体验更为丰富,而WebGL正处于这样的技术生态系统的中心位置。其应用范围覆盖在线游戏、大数据可视化、计算机辅助设计、虚拟现实以及数...

  • Processing.js和P5.js的功能简介和区别

    什么是ProcessingProcessing是关于数字艺术的编程语言,支持跨平台,语言本身是一个类Java语言,程序文件的后缀为.pde。
    什么是Processing.js为了能让Proce...

  • 更多...