Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

函数式编程 #17

Open
CoolRabbit520 opened this issue Mar 13, 2018 · 0 comments
Open

函数式编程 #17

CoolRabbit520 opened this issue Mar 13, 2018 · 0 comments

Comments

@CoolRabbit520
Copy link
Owner

函数式编程语言特性

在函数式编程语言中,函数是第一类的对象,也就是说,函数不依赖于任何其他的对象而可以独立存在,而在面向对象的语言中,函数 ( 方法 ) 是依附于对象的,属于对象的一部分。这一点 决定了函数在函数式语言中的一些特别的性质,比如作为传出 / 传入参数,作为一个普通的变量等。

匿名函数

匿名函数(英语:anonymous function)是指一类无需定义标识符(函数名)的函数或子程序。比如:
(function(){document.title=location.href;})();
第一对圆括号中的函数(“(function(){document.title=location.href;})”)用作声明一个匿名函数,而最后的一对圆括号则用来执行这个函数。

在函数式编程语言中,函数是可以没有名字的。匿名函数通常表示:“可以完成某件事的一块代码”。这种表达在很多场合是有用的,因为我们有时需要用函数完成某件事,但是这个函数可能只是临时性的,那就没有理由专门为其生成一个顶层的函数对象。

柯里化

柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
在直觉上,柯里化声称“如果你固定某些参数,你将得到接受余下参数的一个函数”。
比如,f(x,y)=x*y,如果固定了 y=2,则得到有一个变量的函数 f(x)=2x

柯里化,接受一个参数(减少了函数的变量数量),并返回一个新函数(具体化了函数的用意)。

高阶函数

在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:

  • 接受一个或多个函数作为输入
  • 输出一个函数

在函数式编程中,返回另一个函数的高阶函数被称为柯里化的函数。

参考资料

JavaScript 中的函数式编程实践

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant