- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动力节点java——Functiona Programming Jargon函数式编程术语解释
动力节点java——Functional Programming Jargon 函数
式编程术语解释
本文的主要目的即是希望能够有一种通俗易懂的方式来阐述函数
式编程中常见的理论术语概念
Arity 参数数目
Arity 代指一个函数的参数数量 ,该关键字来源于类似于 unary、
binary、ternary 等等 ,由两个后缀-ary、-ity 组成。譬如 ,如果
一个函数允许输入两个参数 ,那就称为所谓的 binary function(二
元函数) ,或者一个有两个参数的函数。有时候这种函数也会被喜
欢拉丁语法的人称为”dyadic(二价的)”函数。以此类推 ,不定参
数的方程也就被称为variadic(可变参数函数)。
const sum (a, b) a + b;
const arity sum .length;
console.log (arity);
// 2
// The arity of sum is 2
Higher-Order Functions (HOF) 高等函数
一个接收某个函数作为参数的函数成为高等函数 ,该函数可以选择
返回一个函数也可以返回其他类型
const filter (pred, xs) {
const result [];
for (var idx 0; idx xs.length; idx + 1) {
if (pred (xs[idx])) {
result.push (xs[idx]);
}
}
return result;
};
const is type x Object (x) instanceof type;
filter (is (Number), [0, 1, 2, null]); // [0, 2]
PartialApplication局部封装
将原本一个多参数值的函数封装为固定参数数目的函数的过程称
为 PartialApplication
let sum (a, b) a + b;
// partially applying `a` to `40`
let partial sum .bind (null, 40);
// Invoking it with `b `
partial(2); // 42
Currying
将一个 N参数值的函数转化为 N个一元函数的组合 ,Currying与
PartialApplication的区别在于 PartialApplication最终生成的
函数允许接收多个值 ,而 Currying生成的函数序列中的每个函数
只允许接收一个参数
let sum (a, b) a + b;
let curriedSum (a) (b) a + b;
curriedSum (40)(2) // 42.
Composition组合
感觉有点像设计模式里的 Decorator ,即能够将两个指定类型组合
转化为一个新值的函数
最常见的组合即是常见的函数组合 ,允许你将不同的函数组合成一个返回单值的函数
const compose (f, g) a f (g (a)) // Definition
const floorAndToString compose ((val) val.toString (), Math .floor) //Usage
floorAndToString (121.212121) // 121
Purity 纯函数
一个没有任何副作用 ,并且返回值只由输入决定的函数成为纯函数
let greet yo;
greet.toUpperCase (); // YO;
greet // yo;
As opposed to
let numbers [1, 2, 3];
numbers.splice (0); // [1, 2, 3]
numbers // []
您可能关注的文档
- 前两次作业的总结.pdf
- 前列腺癌与雄激素受体基因_CAG_n重复多态性的关系.pdf
- 前进中的矿山开拓者——全国“五一劳动奖状”获得单位五矿邯邢矿业有限公司.pdf
- 剑灵武器如何出祝福神妙概率机制解析.pdf
- 剩女是主动选择,剩男是被动结果.doc
- 剪力墙的截面尺寸选择.doc
- 剩余格上inf-→与inf-=〉合成模糊关系方程的求解.pdf
- 力的合成[上学期]--新人教版h.ppt
- 剑刃风暴:百年战争梦魇兵种技能武将图文攻略.pdf
- 力学中的数学方法-积分变换-3.pdf
- DB44_T 2607.4-2025 滨海蓝碳碳汇能力调查与核算技术指南 第4部分:盐沼.pdf
- DB43_T 3178-2024 烟叶农场建设管理要求.pdf
- DB37_T 4838-2025 含氢分布式综合能源系统运行优化指南.pdf
- DB37_T 4834-2025 高速公路集中养护工作指南.pdf
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
文档评论(0)